Beispiel #1
0
        public static void ExecuteLua(string luaContent, Action callback = null, string path = "")
        {
            //BY CG:JYX2的特殊情况,有空文件
            if (luaContent.Equals("do return end;"))
            {
                //Debug.Log("识别到空的lua文件,直接跳过:" + path);
                return;
            }

            var luaEnv = LuaManager.GetLuaEnv() as LuaEnv;

            Debug.Log("执行lua: " + path);

            _executing = true;
            Loom.RunAsync(() =>
            {
                luaEnv.DoString(luaContent);

                Debug.Log("lua执行完毕: " + path);

                currentLuaContext = null;

                _executing = false;

                if (callback != null)
                {
                    Loom.QueueOnMainThread(o => { callback(); }, null);
                }
            });
        }
Beispiel #2
0
        public static void Execute(string path, Action callback = null, JYX2LuaEvnContext context = null)
        {
            if (_executing)
            {
                Debug.LogError("错误:在一个lua未结束的时候,启动另一个lua线程, path=" + path);
                return;
            }

            currentLuaContext = context;

            var    chunk      = LuaManager.LoadLua(path);
            string luaContent = Encoding.UTF8.GetString(chunk).Trim('\n').Trim('\r');

            ExecuteLua(luaContent, callback, path);
        }