public IEnumerator EndPlay_Co() { yield return(m_GameMode.StartCoroutine(HandleBeforeEndPlay_Co())); m_GameState.Dispose(); m_GameState = null; Destroy(m_GameMode); m_GameMode = null; m_Level = null; yield return(m_GameMode.StartCoroutine(HandleAfterEndPlay_Co())); }
public IEnumerator BeginPlay_Co() { yield return(StartCoroutine(HandleBeforeBeginPlay_Co())); m_Level = hwmSystem.GetInstance().GetWaitingToPlayLevel(); hwmDebug.Assert(m_Level != null, "m_Level != null"); m_GameState = Activator.CreateInstance(Type.GetType(m_Level.GameStateClassName)) as hwmGameState; m_GameState.Initialize(); m_GameMode = gameObject.AddComponent(Type.GetType(m_Level.GameModeClassName)) as hwmGameMode; yield return(StartCoroutine(HandleAfterBeginPlay_Co())); yield return(StartCoroutine(m_GameMode.StartPlay_Co())); }