private void Awake() { //得到lua的环境 luaEnv = LuaHelper.GetInstance().GetLuaEnv(); /* 设置luaTable 的元方法 (“__index”) */ luaTable = luaEnv.NewTable(); LuaTable tmpTab = luaEnv.NewTable();//临时表 tmpTab.Set("__index", luaEnv.Global); luaTable.SetMetaTable(tmpTab); tmpTab.Dispose(); /* 得到当前脚本所在对象的预设名称,且去除后缀(["(Clone)"]) */ string prefabName = this.name; //当前脚本所挂载的游戏对象的名称 if (prefabName.Contains("(Clone)")) { prefabName = prefabName.Split(new string[] { "(Clone)" }, StringSplitOptions.RemoveEmptyEntries)[0]; } /* 查找指定路径下lua文件中的方法,映射为委托 */ luaAwake = luaTable.GetInPath<BaseLuaUIForm.delLuaAwake>(prefabName + ".Awake"); luaStart = luaTable.GetInPath<BaseLuaUIForm.delLuaStart>(prefabName + ".Start"); luaUpdate = luaTable.GetInPath<BaseLuaUIForm.delLuaUpdate>(prefabName + ".Update"); luaDestroy = luaTable.GetInPath<BaseLuaUIForm.delLuaDestroy>(prefabName + ".OnDestroy"); //调用委托 if (luaAwake != null) { luaAwake(gameObject); } }
//反注册热更新列表 void OnDisable() { LuaHelper.GetInstance().CallLuaFunction("ProjectHotFix", "UnRegister_HotFix"); }
void Start() { LuaHelper.GetInstance().DoString("require 'StartGame'"); }
public void ReceiveInfoStartRuning() { LuaHelper.GetInstance().DoString("require 'StartGame'"); }