Zhonghui

每个不曾起舞的日子,都是对生命的辜负

User Tools

Site Tools


软件:unity:xlua

XLua

先复习Lua语法,XLua是Unity的一个插件


安装XLua

打开zip包,你会看到一个Assets目录,这目录就对应Unity工程的Assets目录,保持这目录结构放到你的Unity工程。

自定义Loader

protected LuaEnv luaenv = null;
 
byte[] CustomLoader(ref string filePath) // Lua端写require('xxx'),传进来的字符串就是'xxx'
{
    // 一般不用绝对路径,使用Application.dataPath这样开头的相对路径
    // 在Loader函数里手动解析Lua代码的位置,涉及到层级关系的要复杂一点,要处理路径分隔符的问题
    string luaRequirePath = string.Format("E:\\{0}.lua", filePath);
 
    // using System.IO;
    return System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(luaRequirePath));
}
 
// Start is called before the first frame update
void Start()
{
    luaenv = new LuaEnv();
    luaenv.AddLoader(CustomLoader); // 依次调用所有的Loader,直到有一个Load成功
 
    luaenv.DoString("require('MainLua')"); // 加载的是这个文件:E:\MainLua.lua
    // Loader会影响到所有的require,不管是写在C#端的还是Lua端的
}

隔离上下文环境

 

LuaComponent

绑定属性

/var/www/DokuWikiStick/dokuwiki/data/pages/软件/unity/xlua.txt · Last modified: 2022/10/08 04:45 by zh