一、环境配置
要实现热更新功能,我们首先需要开启热更新的宏。操作方法是在「File->Build Settings->Player Settings->Player->Other Settings->Scripting Define Symbols」选项中添加HOTFIX_ENABLE

开启后,在xLua的菜单中就出现了「Hotfix Inject In Editor」选项。

当我们在开发补丁版本需要进行热更新测试时,都需要点击一次上图中的「Generate Code」选项重新生成一次代码,然后再点击「Hotfix Inject In Editor」进行注入。
如果注入时出现了如下错误信息,我们需要将xLua源码中的「Tools」文件夹复制到我们工程的根目录下。

以上两步操作如果成功的话,在控制台都会有相应提示。环境配置完成后,可以运行xLua自带的热更新示例,测试一下是否能热更成功。

二、热更新原理
首先引用一段xLua作者的话,介绍一下xLua实现热更新的原理(原文出处)
热补丁的基本原理其实非常简单,了解后任何程序员都很容易分析出开销,比如对于这个类
public class Calc
{
int Add(int a, int b)
{
return a + b
}
}
打了hotfix标签后,xLua会在il层面注入代码,注入之后这个类会类似这样:
public class Calc
{
static Func<object, int, int, int> hotfix_Add = null;
int

本文介绍如何在Unity中配置热更新环境及其实现原理。通过在C#类中添加特定属性,利用xLua工具生成Lua代码注入,从而实现游戏运行时动态修改逻辑的目的。
最低0.47元/天 解锁文章
1343

被折叠的 条评论
为什么被折叠?



