protected void OnFixedUpdate() { if (m_currentState == null) { if (GameResManager.Singleton.m_isPreLoadFinish) {//第一个state要等到PreLoad完成 User.Singleton.OnInit(); m_nextState = new StateStartup(); } } if (null != m_currentState) { m_currentState.OnFixedUpdate(); m_widgetManager.FixedUpdate(); } if (null != m_nextState) { if (null != m_currentState) { m_currentState.OnExit(); m_widgetManager.Clear(); AnyObjectPoolMgr.Singleton.DestroyAll(); Resources.UnloadUnusedAssets(); for (int i = 0; i < 100; i++) { GC.Collect(); } //GC.WaitForPendingFinalizers(); } m_currentState = m_nextState; m_nextState = null; m_currentState.OnEnter(); } GameResManager.Singleton.FixedUpdate(); }