Unity热更新06-XLua热补丁-01 - 热补丁重要步骤

Lua代码

print("*********第一个热补丁***********")

--直接写好代码 运行 是会报错的
--我们必须做4个非常重要的操作
--1.加特性
--2.加宏 第一次开发热补丁需要加
--3.生成代码
--4.hotfix 注入  --注入时可能报错 提示你要引入Tools

--热补丁的缺点:只要我们修改了热补丁类的代码,我们就需要重新执行第4步!!!
--需要重新点击 注入

--lua当中 热补丁代码固定写法
--xlua.hotfix(类, "函数名", lua函数)

--成员函数 第一个参数 self
xlua.hotfix(CS.HotfixMain, "Add", function(self, a, b)
	return a + b
end)

--静态函数 不用传第一个参数
xlua.hotfix(CS.HotfixMain, "Speak", function(a)
	print(a)
end)

C#代码

[Hotfix]
public class HotfixMain : MonoBehaviour {
    private void Start() {
        DSLuaMgr.Instance.DoLuaFile("Main");

        Debug.Log(Add(15, 25));
        Speak("你好中国");
    }
    public int Add(int a, int b) { return 0; }
    public static void Speak(string str) { Debug.Log("UnitySir"); }
}

1.加特性

在需要热补丁的C#代码上添加 [Hotfix] 特性即可

2. 加宏(第一次需要添加)

第一次打热补丁的操作:
File -> Build Setting -> Player Setting -> 在Player中找到 Scripting Define Symbols 添加 宏:HOTFIX_ENABLE

等待编译结束,即可看到如下:

3. 在XLua中生成代码

4. lua代码中hotfix注入

通过以下操作将热补丁注入到编辑器

但出现如下错误:提示安装 Tools

原因是我们只导入了 XLua和Plugins 文件夹,我们只需要将 官方的XLua目录下的Tools导入即可(Tools目录和Assets目录在同一个层级)

成功后就会出现如下内容:

缺点:每次修改了需要热补丁的代码,都必须重新注入

posted @ 2020-10-29 16:19  UnitySir  阅读(343)  评论(0编辑  收藏  举报