1. 程式人生 > 實用技巧 >Unity熱更新06-XLua熱補丁-01 - 熱補丁重要步驟

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目錄在同一個層級)

成功後就會出現如下內容:

缺點:每次修改了需要熱補丁的程式碼,都必須重新注入