float GetDirectionMultiplier(WalkingDirections x)
    {
        switch (x)
        {
        case WalkingDirections.Front:
            return(frontDirectionSpeedMultiplier);

        case WalkingDirections.Left:
        case WalkingDirections.Right:
            return(sideDirectionSpeedMultiplier);

        case WalkingDirections.Back:
            return(backDirectionSpeedMultiplier);

        default:
            return(30000);
        }
    }
    void FixedUpdate()
    {
        if (InputModule.HorizontalAxis == 0 && InputModule.VerticalAxis == 0)
        {
            Still();
        }
        else
        {
            currentDirection           = GetDirection();
            currentDirectionMultiplier = GetDirectionMultiplier(currentDirection);


            Vector3 InputVector = new Vector3(InputModule.HorizontalAxis, 0, InputModule.VerticalAxis);
            if (InputVector.magnitude > 1)
            {
                InputVector = InputVector.normalized;
            }
            Vector3 amountToMove = InputVector * speed * speedFraction * currentDirectionMultiplier;
            if (!dodge)
            {
                Move(amountToMove);
            }
        }
    }