public void SetGameState(GameState newState) { if (currentState == newState) { Debug.Log("Error: no se va a mostrar el " + newState.ToString()); } else { DisableInput(); switch (newState) { case GameState.MainMenu: if (ServicesConfigurationInitialized && ServicesConfiguration.enable_tappx && !isTappxBannerVisible) { ShowTappxBanner(true); } if (ScreenManager.Instance.currentGUIScreen.screenDefinition == ScreenDefinitions.HIGHSCORES) { animator.SetBool("highscores", false); } ShowScreen(ScreenDefinitions.MAIN_MENU); AudioMaster.instance.StopAll(false); AudioMaster.instance.PlayLoop(SoundDefinitions.THEME_MAINMENU); rotator.EraseAllPins(); if (currentState != GameState.Highscores && currentState != GameState.None) { animator.SetTrigger("menu"); } break; case GameState.GoToPlay: if (ServicesConfigurationInitialized && ServicesConfiguration.enable_tappx) { ShowTappxBanner(false); } animator.SetTrigger("start"); nextGameState = GameState.Playing; break; case GameState.Playing: ScreenManager.Instance.HideScreen(); StartCoroutine(WaitUntilPlayingState()); break; case GameState.GameOver: AudioMaster.instance.Play(SoundDefinitions.END_FX); animator.SetTrigger("exit"); GameOverPoints.text = Score.ToString(); if (ServicesConfigurationInitialized && ServicesConfiguration.enable_tappx && !isTappxBannerVisible) { ShowTappxBanner(true); } break; case GameState.Highscores: animator.SetBool("highscores", true); ShowScreen(ScreenDefinitions.HIGHSCORES); break; } currentState = newState; if (nextGameState != GameState.None) { GameState theNextState = nextGameState; nextGameState = GameState.None; SetGameState(theNextState); } } }