美文网首页
SLua踩坑指南:expect self, but get nu

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

作者: 真诚的狗子 | 来源:发表于2017-03-22 16:32 被阅读0次

报错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中寻找,找不到,报了这个错。

相关文章

网友评论

      本文标题:SLua踩坑指南:expect self, but get nu

      本文链接:https://www.haomeiwen.com/subject/hcwonttx.html