void Awake() { FastNet.App.initialize(s_luaEnv); m_client = new FastNet.Client(); m_client.OnMessage = OnMessage; m_client.OnRoomMessage = OnRoomMessage; m_client.OnEvent = OnEvent; LuaTable meta = s_luaEnv.NewTable(); meta.Set("__index", s_luaEnv.Global); m_mainScriptEnv.SetMetaTable(meta); meta.Dispose(); m_mainScriptEnv.Set("self", this); s_luaEnv.DoString(luaScript.text, "Main", m_mainScriptEnv); var luaAwake = m_mainScriptEnv.Get <LuaAction>("awake"); m_mainScriptEnv.Get("start", out m_luaStart); m_mainScriptEnv.Get("update", out m_luaUpdate); m_mainScriptEnv.Get("ondestroy", out m_luaOnDestroy); if (luaAwake != null) { luaAwake(); } }
void OnDestroy() { if (m_luaOnDestroy != null) { m_luaOnDestroy(); } m_client.Close(); m_client.OnEvent = null; m_client.OnMessage = null; m_client.OnRoomMessage = null; m_client = null; FastNet.App.finalize(); m_luaOnDestroy = null; m_luaUpdate = null; m_luaStart = null; m_mainScriptEnv.Dispose(); m_mainScriptEnv = null; }