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脚本中,调用函数应该用冒号,而我用的点

Lua中,点和冒号的区别:点击查看点和冒号的区别


由这个错误延伸开的:

expect self,but get null,报这个错误的原因是什么呢?

根据点和冒号的区别,我们可以知道我报错的原因是用了点,却没有传入对象,所以他找不到对象。通过跟进代码,可以看到在checkSelf方法的时候,函数根据内存地址(虽然没有传这个参数,但竟然有值)去SLua.ObjectCache中寻找,找不到,报了这个错。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容