ToLua中自定义LuaLoader

ToLua中有一个LuaFileUtils.cs负责去哪里寻找lua文件,然后读取里面的bytes内容。当出现一些不同的加载方式想自定义,就可以创建一个Loader然后继承LuaFileUtils,重写里面的方法。

using UnityEngine;
using System.Collections;
using System.IO;
using LuaInterface;

public class LuaLoader : LuaFileUtils {

    // Use this for initialization
    public LuaLoader(bool isZip = false) {
        instance = this;//外面只要new就好了,单例模式的实例为当前实例了
        beZip = isZip;
    }
    
    public void AddBundle(string bundleName) {
    string url = "";
#if !UNITY_EDITOR
    url = LuaConst.luaResDir + "/" + bundleName.ToLower();
#else
    url = LuaConst.luaWinTestResDir + "/" + bundleName.ToLower();
#endif
    if (File.Exists(url)) {
            
        AssetBundle bundle = AssetBundle.LoadFromFile(url);
            if (bundle != null)
            {
                bundleName = bundleName.Replace("lua/", "").Replace(".mp", "");
                base.AddSearchBundle(bundleName.ToLower(), bundle);
            }
        }
    }
    
    public override byte[] ReadFile(string fileName) {
        //怎么读取,可以自己重写
        return base.ReadFile(fileName);     
    }
}

使用方法就是在你的LuaManager中,初始化new一个自定义的LuaLoder就可以了。


首页 我的博客
粤ICP备17103704号