ulua怎么在lua中使用self关键字?

这个标题不太明确,准确的应该是lua中以元表形式的函数如何在c#中回调,也就是让c#去回调lua中以:定义的方法,这个在ulua里面老版本没有明确的例子,我这里说下,githbub上面的版本已经补上了这个例子:A6_LuaCall。https://github.com/jarjin/uLua/tree/master/Assets/uLua/Examples/A6_LuaCall

lua中定义了一个元表方法,调用c#的静态函数OnSharpCall:
function test:aaa()
    obj.OnSharpCall(self, callback);
end

这个函数会被下面的c#回调,我们可以声明下:
function test:callback()
    print("test--->>>");
end

如果这个函数想被c#调用的话,那需要讲self关键字以参数形式传递给c#,当c#再回调luafunction的时候,记得将self关键字作为第一个参数回传,因为类函数默认以self作为第一参数,lua直接互相调用,自动隐藏了,你看不见而已。

static void OnSharpCall(LuaTable self, LuaFunction func) {
    func.Call(self);
}

[本日志由 admin 于 2018-08-24 12:37 AM 更新]
上一篇: ulua使用vs+bebalua插件做Unity代码提示方案&插件地址
下一篇: ulua如何生成protobuf-lua-gen的协议文件?
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭