private void OnControllerColliderHit(ControllerColliderHit hit)
    {
        Debug.DrawRay(hit.point, hit.normal, Color.blue);
        //IF touching the ladder

        if (hit.transform.tag == "Ladder" && !_topOfLadder)
        {
            //HangingIdle
            //push one unit up the ladder for not being

            _controller.Move(Vector3.up * 0.1f);
            _controller.enabled = false;
            _activeLadder       = hit.transform.GetComponent <Ladder>();
            transform.position  = _activeLadder.GetHanPosBottomOfLadder();
            _anim.SetBool("Ladder", true);
            _onLadder = true;
            //wait 0.1 seconds o activate again the controller
            StartCoroutine(WaitToMovePosition());
            Debug.Log("Move Up the ladder");
        }
        if (hit.transform.tag == "Ladder" && _topOfLadder)
        {
            //MoveDownAnimation trigger
            //HangingIdle
            _controller.Move(Vector3.left * 0.1f);
            _onLadder           = true;
            _controller.enabled = false;

            _activeLadder      = hit.transform.GetComponent <Ladder>();
            transform.position = _activeLadder.GetHandPosTopOfLadder();
            //flip
            flipPlayer();
            _anim.SetTrigger("ClimbDownLadder");
            //StartCoroutine(WaitToMovePosition());



            Debug.Log("MoveDownTheLadder");
        }
        if (_controller.isGrounded == true && _onLadder)
        {
            _onLadder = false;
            _anim.SetFloat("LadderSpeed", 0.0f);
            _anim.SetBool("Ladder", false);
            //Moving down, if it hits ground remove Player from Ladder
        }
    }