private void OnStateChange()
    {
        if (_currState == GameState.None)
        {
            return;
        }

        _arRappiMenu.SetActiveSearchTarget(_currState == GameState.Searching_Target);

        switch (_currState)
        {
        case GameState.Searching_Target:
        {
            // Interfaz buscando marcador
            _arRappiMenu.SetActiveWaitInitGame(false);
            break;
        }

        case GameState.Waiting_Initialize:
        {
            // Mostrar interfaz:
            //  + Boton "iniciar juego"

            _arRappiMenu.SetActiveWaitInitGame(true);
            break;
        }

        case GameState.Starting:
        {
            _arRappiMenu.SetActiveWaitInitGame(false);

            // Iniciar secuencia "Esconder mochila"
            SequenceControl currSeq = _sequenceControls.SingleOrDefault((s) => s.gameStateSequence == CurrState);

            if (currSeq == null)
            {
                CurrState = GameState.Playing;
                return;
            }

            currSeq.StartSequence(() =>
                {
                    // Secuencia finalizada
                    CurrState = GameState.Playing;
                });

            break;
        }

        case GameState.Playing:
        {
            // El juego no se reinicia si el juego estuvo en pausa
            // Esto se maneja desde el metodo PauseGame
            if (_lastState == GameState.Searching_Target)
            {
                if (PepitoMinigameControl.Instance.IsFinishAllMoves())
                {
                    // Activar menu en caso de que el juego haya finalizado los movimientos
                    _arRappiMenu.SetActiveSelectorContainer(true);
                }

                return;
            }

            // Iniciar juego "Revolver contenedores"
            PepitoMinigameControl.Instance.InitGame();
            break;
        }

        case GameState.Finishing:
        {
            _arRappiMenu.SetActiveSelectorContainer(false);

            // Indicar si ganó o perdió a traves de las secuencias
            // + Iniciar secuencia "Levantar contenedor escogido"
            //  ++ Correcto:
            //      --  Iniciar secuencia "Mostrar premio"
            //      --  Interfaz al finalizar secuencia
            //  ++ Incorrecto:
            //      --  Iniciar secuencia "Incorrecto"
            //      --  Interfaz al finalizar secuencia

            SequenceControl currSeq = _sequenceControls.SingleOrDefault((s) => s.gameStateSequence == CurrState);

            if (currSeq == null)
            {
                CurrState = GameState.Game_Over;
                return;
            }

            // No realizar nuevamente la secuencia si se ha pausado el juego.
            if (_lastState == GameState.Searching_Target)
            {
                // Activar interfaz si la secuencia ha finalizado
                if (currSeq.IsFinished)
                {
                    // Activar interfaz en caso de finalizada la secuencia
                    _arRappiMenu.SetActiveMessage(true);
                    _arRappiMenu.SetActiveFinishGame(true);
                    _arRappiMenu.SetActiveCelebration((bool)IsPlayerWinner);
                }

                return;
            }

            currSeq.StartSequence(() =>
                {
                    // Secuencia finalizada
                    //CurrState = GameState.Game_Over;
                    _arRappiMenu.SetActiveFinishGame(true);
                });
            break;
        }

        case GameState.Game_Over:
        {
            // Indica que el juego ha sido finalizado
            Debug.Log("Game Over");
            _sequenceControls = null;
            CurrState         = GameState.None;

            //LeanTween.delayedCall(waitTimeGameOver, () =>
            //{
            //    // Reiniciar escena
            //});

            break;
        }

        case GameState.Paused:
        {
            // Detener juego o secuencia

            break;
        }
        }
    }