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); } } }