五月天青色头像情侣网名,国产亚洲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的評論 (共 條)

分享到微博請遵守國家法律
百色市| 汤阴县| 旬阳县| 仪征市| 大厂| 庐江县| 江源县| 新绛县| 彭山县| 西和县| 舟曲县| 西青区| 苍溪县| 高州市| 黄平县| 雷波县| 临泽县| 苏尼特右旗| 宜城市| 民勤县| 临高县| 海安县| 宜章县| 七台河市| 田东县| 广灵县| 溧水县| 沛县| 永康市| 佛学| 延吉市| 辉县市| 阳新县| 淳安县| 比如县| 五常市| 巴青县| 柘城县| 手游| 四子王旗| 鹤庆县|