先复习Lua语法,XLua是Unity的一个插件
打开zip包,你会看到一个Assets目录,这目录就对应Unity工程的Assets目录,保持这目录结构放到你的Unity工程。
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端的 }