xLua使用require改變路徑加載Lua腳本

這個問題我糾結了很久,應該是屬於偏新手的一個問題,在寫代碼的時候由於兩個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所在的位置,若是要適配手機,須要再加一個適配手機的宏。
相關文章
相關標籤/搜索