private void OnStateChanged(GameState state) { Debug.Log(state); switch (state) { case GameState.Lobby: DOVirtual.DelayedCall(0.3f, () => State.Value = GameState.RoundPrepare); // disable physics btw coins, slingshot and stickmen Physics.IgnoreLayerCollision(9, 10); Physics.IgnoreLayerCollision(10, 11); break; case GameState.RoundPrepare: m_level = m_levelContainer.CurrentLevel; m_enemyContainer = m_level.EnemyContainer; // m_player.ToggleInput(false); m_enemyContainer.DeactivateAll(); m_lockerController.IsLockerSafe.Value = true; break; case GameState.Round: GameAnalytics.NewProgressionEvent(GAProgressionStatus.Start, "Game", m_levelContainer.CurrentLevel.name); m_enemyContainer.ActivateAll(); m_player.ToggleInput(true); break; case GameState.Win: GameAnalytics.NewProgressionEvent(GAProgressionStatus.Complete, "Game", m_levelContainer.CurrentLevel.name); m_enemyContainer.DeactivateAll(); m_player.ToggleInput(false); break; case GameState.Fail: GameAnalytics.NewProgressionEvent(GAProgressionStatus.Fail, "Game", m_levelContainer.CurrentLevel.name); m_enemyContainer.DeactivateAll(); break; } }