Unity 關於Xlua HotFix中會報的一些錯

首先明確一下xlua熱更新的函數是:

xlua.hotfix(CS.C#類型, "函數名", function(self)

        CS.UnityEngine.Debug.Log("修改了代碼")

    end

然後提下錯誤

xlua.access, can not find c# type

這個是由於類型名沒有使用HotFix標籤或者不在配置文件的類裏面(配置文件的設置請查看官方文檔:https://github.com/Tencent/xLua/blob/master/Assets/XLua/Doc/configure.md),解決這個bug只需要在你需要進行熱更新的對象上打上[HotFix]標籤或者再配置文件裏面添加對象就行,具體參考XLua\Examples\08_Hotfix下的HotFixTest文件(注意 :添加後需要再生成一下代碼並進行HotFix inject

xlua.access, no field __Hotfix0_方法名

這個是由於要熱更新的類沒有打上[LuaCallCSharp]標籤(當然打在類上也可以),解決這個bug只要打上再重新生成下代碼就行。
還有一種情況是打上了標籤,但是由於修改了調用Lua代碼的形式:比如我原本是通過調用lua方法來實現的,後面改成luaenv.DoString的形式,這個時候再運行代碼就會報這個錯,這個時候只需要再進行一次HotFix inject就行了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章