UH2S2L2——Lua解析器

Lua解析器

本章代码关键字

1
2
3
LuaEnv                //Lua解析器类,new它即可创建一个可以执行Lua语句的Lua解释器
luaEnv.DoString() //传入Lua语句字符串,执行Lua语句
luaEnv.Tick() //帮助我们清除Lua中我们没有手动释放的对象,执行垃圾回收

Lua解析器能够让我们在Unity中执行Lua,一般情况下保持它的唯一性

使用它需要导入命名空间XLua

1
2
3
4
5
6
7
8
9
10
using UnityEngine;
using XLua;

public class L1_LuaEnv : MonoBehaviour
{
void Start()
{
LuaEnv luaEnv = new LuaEnv();
}
}

执行Lua语言

将Lua语句字符串传入方法内,即可让Lua解析器执行这句语句
还可以传入第二个字符串参数,当Lua解析器执行该语句报错时就可以输出第二个参数的内容

1
luaEnv.DoString("print('你好世界')");

垃圾回收

帮助我们清除Lua中我们没有手动释放的对象,执行垃圾回收,帧更新中定时执行,或者切场景时执行

1
luaEnv.Tick();

销毁Lua解析器

除非特殊需求,否则一般不需要去执行这句语句

1
luaEnv.Dispose();

使用require​​执行Lua脚本

想要执行一个Lua脚本,可以执行Lua的多脚本执行语句require​函数
默认寻找脚本的路径是Resources文件夹,并且因为在这里可能是通过Resources.Load()​去加载Lua脚本
该方法支持加载的文本资源只有.txt、.xml、.bytes等,这导致我们不得不在.lua后缀后再加一个.txt

Main.lua.txt

1
print("第一个Unity调用的Lua脚本")

Lesson1_LuaEnv.cs

1
luaEnv.DoString("require('Main')");

image