天天看点

xLua中C#调用Lua

这里使用的是XLua框架,需要提前配置xlua,设置加载器路径;

可以参考之前的Blog:《xlua入门基础》;

lua中所有的全局变量都会存在一个表中,对应xLua中的Global,通过lua解释器返回出来;

通过Global的方法Get<类型>(key)调用;

调用lua中局部变量,通过table调用;

调用lua中方法和调用变量方式相同,返回值为委托类型;

1)使用委托

2)使用LuaFunction

坑:这里使用委托必须要加[CSharpCallLua]特性,但是有时候加了也会失效,可能是xlua版本和Unity版本兼容问题;

Lua中的table相当于C#中的类,调用表也就是调用类;

坑:这两个打印结果明显不同,通过类映射调用,修改类对象的字段后,再调用lua方法,方法中使用了该字段,发现字段值并没有改变,这应该是和lua中self的赋值有关系;

建议使用LuaTable来调用lua中的table;

但是据说通过结构体映射会减少Lua代码调用的GC,需要加上特性[GCOptimize];

xLua中C#调用Lua

Life is too short for so much sorrow.  

分类: Lua