這個問題我糾結了很久,應該是屬於偏新手的一個問題,在寫代碼的時候由於兩個lua腳本的關聯問題,不少新人應該也會糾結於此。ui
xLua官方的例子加載腳本是這樣的:lua
LuaEnv luaenvScriptCtrl = new LuaEnv(); luaenvScriptCtrl.DoString(@" require('LuaScriptList')");
此時若是lua腳本不在Resources路徑下,或者不在默認的目錄下,此時是加載不到對應的lua腳本的。spa
官方例子代碼:SignatureLoaderTest.cs,第11行開始。code
解決方式以下:blog
LuaEnv luaenvScriptCtrl = new LuaEnv(); LuaEnv.CustomLoader method = CustomLoaderMethod; //添加自定義裝載機Loader luaenvScriptCtrl.AddLoader(method); luaenvScriptCtrl.DoString(@" require('LuaScriptList')"); private byte[] CustomLoaderMethod(ref string fileName) { Debug.Log(fileName); fileName = "g2007_bai_jia_le/"+ fileName; //找到指定文件 fileName = Application.dataPath + "/AssetsBuilt/" + fileName.Replace('.', '/') + ".lua"; if (File.Exists(fileName)) { return File.ReadAllBytes(fileName); } else { return null; } }
這下明白了,ip
fileName 就是LUA所在的位置,若是要適配手機,須要再加一個適配手機的宏。