I made that the player speed changes depening on how far i push the analog, so that it can go from walk to run etc…, one issue i have is that if i move diagonally while using the keyboard the player moves slightly faster.

This is my movement script:

```
private void HandleMovement()
{
move = new Vector3(currentInputVector.x, 0, currentInputVector.y).normalized;
if (move.magnitude >= 0.1f)
{
//Calculate rotation
float targetAngle = Mathf.Atan2(move.x, move.z) * Mathf.Rad2Deg + cam.transform.eulerAngles.y;
currentAngle = Mathf.SmoothDampAngle(currentAngle, targetAngle, ref currentAngleVelocity, rotationSmoothTime);
transform.rotation = Quaternion.Euler(0, currentAngle, 0);
//move in direction of rotation
Vector3 rotatedMovement = Quaternion.Euler(0, targetAngle, 0) * Vector3.forward;
//Calculate player speed based on analog input, and changes the player'speed based on the slope
if(getSlopeInfo >= 30){
speedCalculation = (Mathf.Abs(currentInputVector.x) + Mathf.Abs(currentInputVector.y)) * speed/((getSlopeInfo/10)/2.5f);
}else{
speedCalculation = (Mathf.Abs(currentInputVector.x) + Mathf.Abs(currentInputVector.y)) * speed;
}
// set the movement speed
movementSpeed = rotatedMovement * speedCalculation * Time.deltaTime;
// move the player using the CharacterController
if (!onLedge)
{
controller.Move(movementSpeed);
}
setSlopeVelocity();
}
}
```

As i said i tried to normalize but it doesnt work, and i cant figure out what could be the problem, i suspect something in the speed calculation.