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