SLua踩坑指南:expect self, but get null

報錯Lua腳本如下:

import "UnityEngine"

local aa = FinderFactory:GetInstant()

aa.Generate("")

報錯如下:

[string "..."]:4: System.Exception: expect self, but get null

at SLua.LuaObject.checkSelf (IntPtr l) [0x00014] in E:\ARMasterUnityGit\ARMasterUnity\Assets\Plugins\Slua_Managed\LuaObject.cs:1354

at Lua_FinderFactory.Generate (IntPtr l) [0x00003] in E:\ARMasterUnityGit\ARMasterUnity\Assets\Slua\LuaObject\Custom\Lua_FinderFactory.cs:39

stack traceback:

[C]: in function 'assert'

[string "..."]:4: in function 'Generate'

[string "temp buffer"]:10: in main chunk

出錯原因:

Lua腳本中,調(diào)用函數(shù)應(yīng)該用冒號,而我用的點

Lua中,點和冒號的區(qū)別:點擊查看點和冒號的區(qū)別


由這個錯誤延伸開的:

expect self,but get null,報這個錯誤的原因是什么呢?

根據(jù)點和冒號的區(qū)別,我們可以知道我報錯的原因是用了點,卻沒有傳入對象,所以他找不到對象。通過跟進代碼,可以看到在checkSelf方法的時候,函數(shù)根據(jù)內(nèi)存地址(雖然沒有傳這個參數(shù),但竟然有值)去SLua.ObjectCache中尋找,找不到,報了這個錯。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容