void inputReader(ref MovementReadings movement)
    {
        float vertical   = Input.GetAxis("Vertical");
        float horizontal = Input.GetAxis("Horizontal");

        movement.setVertical(vertical);
        movement.setHorizontal(horizontal);
    }
    void initializeMovementParameters()
    {
        isAirborne            = false;
        isJumping             = false;
        isDoubleJumping       = false;
        isDashing             = false;
        isInDashCoolDown      = false;
        fallingAfterAttacking = false;
        airborneFramesTime    = 0;
        jumpingTime           = 0;
        dashingTime           = 0;
        dashCoolDownTime      = 0;

        movement = new MovementReadings(0.0f, 0.0f);

        //Time.timeScale = 1.0f; If the game starts having problems when reloading the scene, uncomment this line
    }
    void moveCharacter(MovementReadings movement)
    {
        moveDirection = Vector3.zero;

        stopJumpingIfAttacking();

        if (IsMovable.getIsAbleToMove() && !IsMovable.getIsStunned())
        {
            setGroundedValues();

            setMovingInputs();

            fallUnderGravity();

            controller.Move(moveDirection * Time.deltaTime);
        }
    }