Ejemplo n.º 1
0
 public void OnCreateLua()
 {
     Bacon.Lua.ILuaPool pool = Maria.Lua.LuaPool.Instance.Cache <Bacon.Lua.ILuaPool>(null);
     Lua.ILuaClientSock bind = pool.CreateClientSock();
     _luaBinding = bind;
     _luaEnable  = _luaBinding.enable();
 }
Ejemplo n.º 2
0
        // second step
        public virtual void StartScript()
        {
            _luaenv = new XLua.LuaEnv();
            _luaenv.AddBuildin("cjson", Maria.Lua.BuildInInit.LoadCJson);
            _luaenv.AddBuildin("lpeg", Maria.Lua.BuildInInit.LoadLpeg);
            _luaenv.AddBuildin("sproto.core", Maria.Lua.BuildInInit.LoadSprotoCore);
            _luaenv.AddBuildin("ball", Maria.Lua.BuildInInit.LoadBall);
            _luaenv.AddLoader((ref string filepath) => {
                UnityEngine.Debug.LogFormat("LUA custom loader {0}", filepath);

                string[] xpaths = filepath.Split(new char[] { '.' });
                string path     = "xlua/src";
                int idx         = 0;
                while (idx + 1 < xpaths.Length)
                {
                    path += "/";
                    path += xpaths[idx];
                    idx++;
                }

                TextAsset file = ABLoader.current.LoadAsset <TextAsset>(path, xpaths[idx] + ".lua");
                if (file != null)
                {
                    return(file.bytes);
                }
                else
                {
                    file = ABLoader.current.LoadAsset <TextAsset>(path + "/lualib", xpaths[idx] + ".lua");
                    if (file != null)
                    {
                        return(file.bytes);
                    }
                    return(null);
                }
            });
            _luaenv.DoString(@" require 'main' ");
            Main main = _luaenv.Global.Get <Main>("main");

            Bacon.Lua.ILuaPool pool = main();
            Maria.Lua.LuaPool.Instance.Cache <Bacon.Lua.ILuaPool>(pool);
        }
Ejemplo n.º 3
0
 public void OnCreateLua()
 {
     Bacon.Lua.ILuaPool pool = Maria.Lua.LuaPool.Instance.Cache <Bacon.Lua.ILuaPool>(null);
     _luaContext = pool.CreateContext();
 }