Суббота, 18 Мая 2024, 02:21

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Слишком сильная инерция при повороте объекта
Слишком сильная инерция при повороте объекта
kokonДата: Среда, 28 Мая 2014, 19:50 | Сообщение # 1
был не раз
Сейчас нет на сайте
Здравствуйте! Пытаюсь разобраться в скрипте полета самолета. Возникла такая проблема. Самолет вращается с помощью мышки. Когда двигаешь мышкой(даже чуть-чуть) самолет начинает вращаться слишком сильно, т.е. ему задается начальный импульс, а потом он по инерции еще проворачивается(довольно сильно). Тоже самое с движением. В итоге полет над террейном получается какой-то сумасшедший. Все крутиться и вертится. Подскажите как можно убрать или уменьшить силу инерции.
Вот процедура в которой осуществляется поворот.
Код

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, просто меняется скорость поворота, но инерция остается.
allodsДата: Среда, 28 Мая 2014, 22:36 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
а сколько само значение RotationSpeed?
ЛевшаДата: Четверг, 29 Мая 2014, 00:18 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
Цитата kokon ()
Подскажите как можно убрать или уменьшить силу инерции.

Увеличить параметр трения в РБ (drag, angularDrag).


X.cor.R (Prologue)
DalyДата: Понедельник, 02 Июня 2014, 01:04 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Вопрос решен, тему можно закрывать.
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Слишком сильная инерция при повороте объекта
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг