• 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目录在同一个层级)

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

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

  • 相关阅读:
    基础语法 -实验楼
    JavaSE案例-Bank
    初识Java
    Java学习大纲-0412更新
    增量法
    蛮力法
    Host‘116.77.33.xx’is not allowed to connect to this MySQL server
    Maven坐标
    HotSpot虚拟机对象创建
    程序计数器为什么是线程私有的?
  • 原文地址:https://www.cnblogs.com/unitysir/p/13897379.html
Copyright © 2020-2023  润新知