热补丁主要是用于将纯C#工程在不重做的情况下通过打补丁的形式改造成具备lua热更新功能工程,主要是让原来脚本中Start函数和Update函数等函数代码块重定向到lua代码。
二.第一个热补丁
1.C#代码端:
1)创建一个脚本,并挂载到游戏中的任意物体上(实际使用过程中一般修改已有脚本,这里测试随意挂载就好)
2)在脚本中定义好测试用的方法,在Start函数中执行Lua文件(LuaManager类及C#调用lua代码的方式详见xlua学习笔记,LuaManager类在:四.C#调用lua-3.lua解析器管理器)
public class HotfixMain : MonoBehaviour { void Start() { LuaManager.Instance.DoLuaFile("Main"); //调用定义的方法,这些方法被lua中的热补丁重新定义了 Debug.Log(Add(1, 2)); Speak("我很帅"); } //预备给热补丁覆盖的成员方法 public int Add(int a,int b) { return 0; } //预备给热补丁覆盖的静态方法 public static void Speak(string str) { Debug.Log("hahaha"); } }