Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / WheelCollider не убедительно себя ведёт.

WheelCollider не убедительно себя ведёт.

monobogdanПостоялецwww13 янв. 201813:26#0
Я не совсем разбираюсь в настоящей физике автомобилей поэтому не пинайте если где то что то делаю не так.
Допустим есть у нас 4х колесная заднеприводная машинка, к которой я хочу прикрутить автомобильную физику.
Подвеска у них нормальная, колеса в целом настроены правильно.
Вопрос в том что если задать слишком большую силу торможения то машинка опрокидывается как будто не машина а мотоцикл.
Допустим масса машины 2000(в мерках юнити), масса колеса 20(в мерках юнити), свойства spring - 9000, damper - 100.
Ускоряю колесо обычным motorTorque, торможу brakeTorque.
Если задать скажем brakeTorque 9000, то машина просто либо дрожит очень сильно либо опрокидывается.
Код:
if(Controls.accelerate) {
  foreach(WheelCollider wheel in RearWheels) {
    wheel.brakeTorque = 0;
    wheel.motorTorque = maxTorque;
    return;
  }
}
if(Controls.brake) {
  foreach(WheelCollider wheel in RearWheels) {
    wheel.brakeTorque = maxBrakeTorque;
  }
}

foreach(WheelCollider wheel in RearWheels) {
    wheel.motorTorque = 0;
    wheel.brakeTorque = maxBrakeTorque / 2;
 }
ЧЯДНТ?
werasaimonПостоялецwww13 янв. 201820:17#1
Для стабильности можно колеса машынки придставить как сферы , то бишь каждое колесо в физическом мире это  CollisionShapeSphere .  Торможения с помощю  brakeTorque это не совсем правильно , скорей всего ошыбка в том что ты тормозишь brakeTorque , надо тормозить чемто вроде Dampingа . Ну можно и brakeTorque тормозить, но это неочень физический.
А также можеш поставить небольшую релаксацию в HingJoint каждого колеса !
P.S: дай код , может помогу тебе !?

Правка: 13 янв. 2018 20:21

/ Форум / Программирование игр / Физика

2001—2018 © GameDev.ru — Разработка игр