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关键字处理,枚举支持从整数或字符串转换为枚举值。

➡️

继续阅读