Unity 3d | Как сделать плавную смену FOV?
Нужна именно плавное изменение FOV, сейчас оно резкое(даже если lerptime слишком большой или слишком маленький). Пробовал умножать на Time.deltatime, Time.time, так же, вместо Lerp() использовать MoveTowards и циклом for с задержкой, ничего из этого не помогло сделать смену плавной. Метод вызывается в Update()
private void MovementUpdate()
{
if (Input.GetKeyDown(KeyCode.Space) && IsGroundCheck())
{ Rb.AddForce(new Vector3(0, 1, 0) * JumpForce); }
if (Input.GetKeyDown(KeyCode.LeftShift) && !(IsCrouched)){
Speed += 300;
Camera.fieldOfView = Mathf.Lerp(Camera.fieldOfView, RunFOV, lerpTime);
}
else if (Input.GetKeyUp(KeyCode.LeftShift)) { if (Speed > 500){
Speed -= 300;
Camera.fieldOfView = Mathf.Lerp(Camera.fieldOfView, NormalFOV, lerpTime);
}
}
Источник: Stack Overflow на русском