五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

GameFramework、xlua、hybrid

2023-01-22 10:09 作者:偽亂  | 我要投稿

報錯

[2023-01-22 09:40:00.322][Exception] ExecutionEngineException: Method body is null. XLua.LuaDLL.Lua::xlua_get_lib_version

XLua.LuaEnv..ctor () (at <00000000000000000000000000000000>:0)

ProjectA.XLuaComponent.Init () (at <00000000000000000000000000000000>:0)

這個報錯不知道為什么,最開始把LuaEnv初始化卸載XLuaComponent的時候,沒有提示報錯。

產(chǎn)生這個報錯的原因就是這個函數(shù)是反射dll中的函數(shù)。在AOT剪裁時,給搞掉了。也有可能是反射的地方不對。本想看看這個DllInport是怎么反射的,最后還是無奈放棄,rider編譯不出dll,看不見iL??戳藙e人的xlua接入,采用的方案就是把luaDll部分轉(zhuǎn)移到AOT中。最后我也采用了這個方案,最后成功運行。

如果看見了上面那個報錯,可以參考dalo開源出來的解決辦法。著重看xlua文件夾下的LuaDLL.cs。aot和hotfix都需要看。這個問題很簡單的就規(guī)避掉了。

https://toscode.gitee.com/ldr123/HybridCLRXlua


講一講思路,

assembly分包,一種是unity-csharp作為AOT,另一種就是作為hotfix。我采用的是后者,所以我需要做一個資源更新的啟動件。

我單獨做了一個Launch的scene,這個scene負(fù)責(zé)更新資源,資源更新完畢后,先加載dll,再切換到我的Game的Scene,相關(guān)腳本單獨放一個文件夾,namespace也要和主工程區(qū)分,作為aot assembly。game scene負(fù)責(zé)實際的預(yù)加載和游戲啟動。

切換場景的時候也有坑,你需要通過Gameframework的scene啟動scene,這意味著你要找到Gameframework使用SceneManager切換scene的地方,因為Gameframework使用的是addtive模式,我們要使用single模式,切換scene前,記得要把Gameframework重啟一次,clear一下里面的緩存。不然在game scene中使用Gameframework就會報錯。

要么就用一套Gameframework來做。但是我個人更喜歡這種方案,因為我可以做到整個場景都熱更,不需要去關(guān)心launch的部分。

GameFramework、xlua、hybrid的評論 (共 條)

分享到微博請遵守國家法律
稷山县| 射洪县| 思南县| 隆尧县| 颍上县| 尤溪县| 顺义区| 微博| 集安市| 会宁县| 遵义市| 靖安县| 鄄城县| 麻阳| 玛纳斯县| 苗栗县| 石楼县| 上栗县| 石台县| 东宁县| 临邑县| 新宾| 涪陵区| 竹北市| 隆林| 香格里拉县| 乌拉特前旗| 大丰市| 丘北县| 静海县| 宜君县| 宁国市| 大渡口区| 额敏县| 贵南县| 涿州市| 定边县| 曲靖市| 长垣县| 宁夏| 常山县|