Тема: Into Orbit
Показать сообщение отдельно
Старый 27.03.2016, 20:30   #7
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Into Orbit

Никак не могу понять как ограничить скорость перпендикулярную оси направления.


Двигается с помощью AddForce, из-за этого очень сильно разгоняется перпендикулярно оси UP при малейших поворотах вектора приложенной силы, что хотелось бы ограничить. Что-то туплю.
Кусок кода, в котором уже нету того, что могло бы ограничить скорость:
var force_vector transform.up;
                
force_vector *= (rocketConfig.forceMultiplier 10f 100f);

                
_rigid.AddForce(force_vector);

                
float airPres = (1f rocketConfig.airDragRotate) * transform.right._rigid.velocity.magnitude 0.15f;
                
_rigid.AddTorque(-direction maxRotSpeed rocketConfig.horizontalStability airPres);
                
_rigid.angularDrag rocketConfig.horizontalStability maxRotSpeed
Раньше просто ограничивал _rigid.velocity.x, но не знал, что он в мировых координатах, и по этому по X он совсем переставал двигатся, а по Y ускорялся.

UPD. Сделал кастыль - меняю rigidbody.drag линейно зависимо от скорости по X, более-менее устраивает поведение.
__________________
Сайт: http://iexpo.ml

Последний раз редактировалось RegIon, 27.03.2016 в 21:32.
(Offline)
 
Ответить с цитированием