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


這個問題我糾結了好久,應該是屬於偏新手的一個問題,在寫代碼的時候因為兩個lua腳本的關聯問題,很多新人應該也會糾結於此。

xLua官方的例子加載腳本是這樣的:

LuaEnv luaenvScriptCtrl = new LuaEnv();
luaenvScriptCtrl.DoString(@" require('LuaScriptList')");

此時如果lua腳本不在Resources路徑下,或者不在默認的目錄下,此時是加載不到對應的lua腳本的。

官方例子代碼:SignatureLoaderTest.cs,第11行開始。

解決方式如下:

        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;
        }
    }

這下明白了,

fileName 就是LUA所在的位置,如果要適配手機,需要再加一個適配手機的宏。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM