public void SetFreezeState(FreezeStates state)
    {
        FreezeState = state;

        if (FreezeState == FreezeStates.isFrozen)
        {
            freezeTimer = freezeRecoveryTime;
        }

        //Debug.Log("FreezeState: " + FreezeState);
    }
    void Start()
    {
        rb             = gameObject.GetComponent <Rigidbody>();
        capsule        = gameObject.GetComponent <CapsuleCollider>();
        playerAnimator = gameObject.GetComponent <Animator>();
        iceHelix       = GameObject.Find("HeliceDeGelo");

        // The following must not be changed later
        capsuleRadius      = capsule.radius;
        cilinderHalfLenght = (capsule.height / 2) - capsule.radius;

        // The following must be updated according to the player's position
        capsuleCenterPosition = transform.position + capsule.center;
        topCapsulePosition    = capsuleCenterPosition + Vector3.up * cilinderHalfLenght * capsuleHeightMultiplier;
        bottomCapsulePosition = capsuleCenterPosition - Vector3.up * cilinderHalfLenght * capsuleHeightMultiplier;

        currentWallJumpForce = wallJumpForce;
        freezeTimer          = 0f;
        FreezeState          = FreezeStates.NotFrozen;
        Cursor.lockState     = CursorLockMode.Locked;
    }