I don't know what I did wrong.
// Update is called once per frame private void Update() { GetUserInput ();
if (!_motor.canControl)
{
_motor.canControl = true;
}
moveDir = new Vector3 (Input.GetAxis (PlayerInput.Horizontal), 0f, Input.GetAxis(PlayerInput.Vertical));
if(moveDir.sqrMagnitude > 1f) moveDir = moveDir.normalized;
_motor.inputMoveDirection = _playerTransform.TransformDirection(moveDir);
_motor.inputJump = Input.GetButtonDown(PlayerInput.Jump);
_motor.movement.maxForwardSpeed = (walk) ? WalkSpeed : runSpeed;
_motor.movement.maxBackwardsSpeed = _motor.movement.maxForwardSpeed;
_motor.movement.maxSidewaysSpeed = (walk) ? walkStrafeSpeed : runStrafeSpeed;
if(moveDir != Vector3.zero) idleTimer = 0f;
inAir = !_motor.grounded;
grounded = !inAir;
float currentAngle = _playerTransform.localRotation.eulerAngles.y;
float delta = Mathf.Repeat((targetYRotation - currentAngle), 360f);
if(delta > 180f)delta -= 360f
float newYRot = Mathf.MoveTowards(currentAngle, currentAngle + delta, Time.deltaTime * maxRotationSpeed);
Vector3 newLocalRot = new Vector3(_playerTransform.localRotation.eulerAngles.x, newYRot, _playerTransform.localRotation.eulerAngles.z);
_playerTransform.localRotation = Quaternion.Euler(newLocalRot);
}
#endregion
// Update is called once per frame private void Update() { GetUserInput ();
if (!_motor.canControl)
{
_motor.canControl = true;
}
moveDir = new Vector3 (Input.GetAxis (PlayerInput.Horizontal), 0f, Input.GetAxis(PlayerInput.Vertical));
if(moveDir.sqrMagnitude > 1f) moveDir = moveDir.normalized;
_motor.inputMoveDirection = _playerTransform.TransformDirection(moveDir);
_motor.inputJump = Input.GetButtonDown(PlayerInput.Jump);
_motor.movement.maxForwardSpeed = (walk) ? WalkSpeed : runSpeed;
_motor.movement.maxBackwardsSpeed = _motor.movement.maxForwardSpeed;
_motor.movement.maxSidewaysSpeed = (walk) ? walkStrafeSpeed : runStrafeSpeed;
if(moveDir != Vector3.zero) idleTimer = 0f;
inAir = !_motor.grounded;
grounded = !inAir;
float currentAngle = _playerTransform.localRotation.eulerAngles.y;
float delta = Mathf.Repeat((targetYRotation - currentAngle), 360f);
if(delta > 180f)delta -= 360f
float newYRot = Mathf.MoveTowards(currentAngle, currentAngle + delta, Time.deltaTime * maxRotationSpeed);
Vector3 newLocalRot = new Vector3(_playerTransform.localRotation.eulerAngles.x, newYRot, _playerTransform.localRotation.eulerAngles.z);
_playerTransform.localRotation = Quaternion.Euler(newLocalRot);
}
#endregion