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