private void FixedUpdate()
    {
        // Resetting avatar
        if (Input.GetKeyDown(KeyCode.Return))
        {
            mPlayerMovement.Reset();
        }

        // Setting air state
        if (!mCharacterController.isGrounded &&
            mState != PlayerState.Hang &&
            mState != PlayerState.Balance)
        {
            mState = PlayerState.Air;
        }

        // Air
        if (mState == PlayerState.Air)
        {
            // Walk
            if (mCharacterController.isGrounded)
            {
                // Switch to Walk state
                mState = PlayerState.Walk;
                mPlayerMovement.ResetAirTimer();
                SetHangability(true);
            }
            // Hang

            // Balance
        }
        // Walk
        else if (mState == PlayerState.Walk)
        {
            // Air
            if (!mCharacterController.isGrounded)
            {
                mState = PlayerState.Air;
            }
            // Roll
            else if (
                Input.GetButtonDown("Fire2") &&
                mRoll.GetRollCooldownTimer() == 0f)
            {
                mPlayerMovement.InitiateRoll();
            }
            // Throw
            else if (GetInputTriggers().x != 0f)
            {
                mState = PlayerState.Throw;
                mPlayerCameraController.InitiateThrowCamera();
            }
        }
        // Throw
        else if (mState == PlayerState.Throw)
        {
            // Walk
            if (GetInputTriggers().x == 0f)
            {
                mState = PlayerState.Walk;
                mPlayerCameraController.InitiateThirdPersonCamera();
            }
        }
        // Hang
        else if (mState == PlayerState.Hang)
        {
            // Climb
            if (Input.GetButtonDown("Jump"))
            {
                StartCoroutine(mPlayerMovement.InitiateClimb());
            }
            // Drop
            if (Input.GetButtonDown("Fire2"))
            {
                mPlayerMovement.InitiateDrop();
            }
        }
    }