Здравствуйте! Пытаюсь разобраться в скрипте полета самолета. Возникла такая проблема. Самолет вращается с помощью мышки. Когда двигаешь мышкой(даже чуть-чуть) самолет начинает вращаться слишком сильно, т.е. ему задается начальный импульс, а потом он по инерции еще проворачивается(довольно сильно). Тоже самое с движением. В итоге полет над террейном получается какой-то сумасшедший. Все крутиться и вертится. Подскажите как можно убрать или уменьшить силу инерции.
Вот процедура в которой осуществляется поворот.
Код
void FixedUpdate()
{
if(!this.rigidbody)
return;
Quaternion AddRot = Quaternion.identity;
Vector3 velocityTarget = Vector3.zero;
AddRot.eulerAngles = new Vector3(pitch, yaw, -roll);
mainRot *= AddRot;
rigidbody.rotation = Quaternion.Lerp(rigidbody.rotation, mainRot, Time.fixedDeltaTime * RotationSpeed);
velocityTarget = (rigidbody.rotation * Vector3.forward) *(Speed + MoveSpeed);
rigidbody.velocity = Vector3.Lerp(rigidbody.velocity,velocityTarget,Time.fixedDeltaTime);
yaw = Mathf.Lerp(yaw,0,Time.deltaTime);
MoveSpeed = Mathf.Lerp(MoveSpeed,Speed,Time.deltaTime); }
Я так понимаю, что дело в строке
Код
rigidbody.rotation = Quaternion.Lerp(rigidbody.rotation, mainRot, Time.fixedDeltaTime * RotationSpeed);
Что сам метод Lerp анимирует перевод одного кватерниона в другой. Пытался менять значение RotationSpeed, просто меняется скорость поворота, но инерция остается.