XLua学习笔记 { }

Lua调用C#

通过生成的适配代码进行调用

把在白名单上和打上[LuaCallCSharp]标签的C#类转换成Lua的table,然后注册C#类的方法和属性到table中。性能好,但占用安装包的内存大

通过反射机制进行调用

性能差,在运行的时候才去查找C#的方法,但占用安装包的内存小

C#调用Lua

使用XLua中的LuaEnv这个类的方法

1. DoString

字符串:DoString("print('a')")
模块:DoString("require 'Module.lua'")

2. 值类型的反射

luaenv.Get<int>("a")

3. 引用类型的反射

C#的类和接口需添加[CSharpCallLua]标签
Global.GetInPath<委托>("math.max")
Global.GetInPath<IPerson>("Person")

生成适配代码

Generator.cs

GenAll()

可在Unity编辑器扩展:生成→C#代码→XLua导出

模板

路径:XLua\Src\Editor\Template,可以在里面增加执行语句,Warp文件,Lua调用C#
例如在LuaClassWarp.tpl.txt里的static int m<%=method.Name%>(RealStatePtr L)增加print(“<%=method.Name%>”),就能实现在调用某个方法的时候打印这个方法的名字了

生成拓展适配代码

XLuaExtensionGenerator.cs
LuaFunction,C#调用Lua

猜你喜欢

转载自blog.csdn.net/weixin_43921423/article/details/129212625