コード例 #1
0
//---------------------------------------------------------------------------------------------------------------------
        void UpdateState(GameState newState)
        {
            if (m_currentGameState == newState)
            {
                return;
            }

            //[TODO-sin: 2019-10-8] Can we make this game state handling into an interface ?
            switch (newState)
            {
            case GameState.PREGAME: {
                Time.timeScale = 1.0f;
                break;
            }

            case GameState.RUNNING: {
                Time.timeScale = 1.0f;
                break;
            }

            case GameState.PAUSED: {
                //[TODO-sin: 2019-10-9] I think this will also stop UI animation. Need to check/do something else
                Time.timeScale = 0.0f;
                break;
            }

            default: break;
            }

            //Dispatch events
            GameState prevState = m_currentGameState;

            m_currentGameState = newState;
            OnGameStateChangedEvent.Invoke(newState, prevState);
        }
コード例 #2
0
        /*public static GamesManager GetInstance()
         * {
         *  if (instance == null)
         *  {
         *      instance = new GamesManager();
         *  }
         *  return instance;
         * }*/

        public static void OnGameStateChanged(string code, GameState state)
        {
            OnGameStateChangedEvent.Invoke(null, new GameStateChangedEventArgs
            {
                LobbyCode = code,
                NewState  = state
            });
        }