xlua学习笔记
💡
原文中文,约4300字,阅读约需11分钟。
📝
内容提要
本文介绍了在Unity中使用xlua加载和执行Lua脚本的方法,建议使用单个LuaEnv管理Lua虚拟机,并通过DoString方法执行Lua代码。详细说明了如何访问Lua中的全局变量、表、函数及其映射方式,包括使用委托和Dictionary等。同时讨论了Lua与C#之间的参数和返回值处理规则,以及可变参数和枚举的处理。
🎯
关键要点
- 在Unity中使用LuaEnv的DoString方法来执行Lua脚本,建议只创建一个LuaEnv。
- 通过LuaEnv.Global.Get方法访问Lua中的全局变量,需先加载相应的Lua脚本。
- C#访问Lua表的映射需要注意接口的public修饰,且映射过程是值拷贝。
- 可以通过委托映射C#与Lua之间的函数,支持返回值和多返回值,性能较好。
- Lua调用C#时,参数处理规则和返回值处理规则需遵循特定的对应关系。
- 可变参数和枚举在Lua中也可以被处理,支持从整数或字符串转换为枚举值。
❓
延伸问答
如何在Unity中使用xlua加载Lua脚本?
在Unity中,可以通过LuaEnv的DoString方法来加载和执行Lua脚本,建议只创建一个LuaEnv实例。
如何访问Lua中的全局变量?
需要先加载相应的Lua脚本,然后通过LuaEnv.Global.Get方法访问全局变量。
C#如何映射Lua中的表?
C#访问Lua表时,接口必须是public修饰,且映射过程是值拷贝,修改字段不会同步。
Lua调用C#时的参数处理规则是什么?
Lua调用C#时,普通参数和ref修饰的参数算输入形参,out不算,返回值处理规则也有类似的对应关系。
如何通过委托在C#和Lua之间映射函数?
可以通过委托映射C#与Lua之间的函数,支持返回值和多返回值,性能较好。
xlua中如何处理可变参数和枚举?
可变参数可以通过params关键字处理,枚举支持从整数或字符串转换为枚举值。
➡️