IEnumerator DisableControls()
    {
        GameObject player = GameObject.Find("Player");

        if ((platformerController = player.GetComponent <PlayerPlatformerController>()) &&
            (playerController = player.GetComponent <PlayerController>()))
        {
            Debug.Log("Controls Off");
            ToggleControls(false);
            playerController.PlayerAnimator.Play("PlayerIdle");
            yield return(new WaitForSeconds(1));

            platformerController.SetPlayerVelocity(new Vector2(platformerController.GetPlayerVelocity().x, 0));
            Debug.Log("Controls On");
            ToggleControls(true);
        }
    }
    // Mover functions

    IEnumerator SnapPlayerToStairs(GameObject player, StairController stairController)
    {
        GameObject closestEndStep = FindClosestEnd(player, stairController);

        Vector2 closestStep = FindClosestStep(player, stairController, closestEndStep);
        Vector2 posPlayer   = new Vector2(player.transform.position.x, closestStep.y);

        platformerController.SetPlayerVelocity(new Vector2(platformerController.GetPlayerVelocity().x, 0));
        playerController.setIsClimbing(true);

        this.enabled = false;
        player.transform.position = Vector2.Lerp(posPlayer, closestStep, 1);
        animator.Play("PlayerStairsIdle");
        playerController.setPlayerStairState(PlayerController.STAIR_STATE.on_stair);
        platformerController.SetPlayerGrounded(false);
        yield return(new WaitForSeconds(animationDelay));

        this.enabled = true;
    }