Тема: Into Orbit
Показать сообщение отдельно
Старый 27.03.2016, 20:30   #7
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 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.y * _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)
 
Ответить с цитированием