VehicleBody3D
Физическое 3D-тело, имитирующее поведение автомобиля.
Физическое 3D-тело, имитирующее поведение автомобиля.
Это физическое тело реализует всю физическую логику, необходимую для моделирования автомобиля. Оно основано на системе Рейкаст, обычно используемой в физических движках. Помимо узла CollisionShape3D для основного корпуса автомобиля, необходимо также добавить узел VehicleWheel3D для каждого колеса. Также следует добавить к этому узлу узел MeshInstance3D для 3D-модели автомобиля, но эта модель, как правило, не должна включать сетки для колёс. Вы можете управлять автомобилем, используя свойства VehicleBody3D.Brake, VehicleBody3D.EngineForce и VehicleBody3D.Steering. Положение или ориентацию этого узла нельзя изменять напрямую.
Примечание: Локальный передний план для этого узла — Vector3.ModelFront.
Примечание: Точка начала координат VehicleBody3D будет определять центр тяжести вашего автомобиля. Чтобы сделать транспортное средство более приземлённым, исходную точку обычно располагают низко, перемещая CollisionShape3D и MeshInstance3D вверх.
Примечание: Этот класс имеет известные проблемы и не предназначен для реализации реалистичной трёхмерной физики транспортного средства. Если вам нужна продвинутая физика транспортного средства, вам, возможно, придётся написать собственную интеграцию физики с использованием CharacterBody3D или RigidBody3D.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
VehicleBody3DКонструктор
public VehicleBody3D();Свойства3
BrakeСвойство
public float Brake { get; set; }Замедляет транспортное средство, применяя тормозное усилие. Транспортное средство замедляется только в том случае, если колеса соприкасаются с поверхностью. Сила, которую необходимо применить для адекватного замедления транспортного средства, зависит от RigidBody3D.Mass транспортного средства. Для транспортного средства с массой, установленной на 1000, попробуйте значение в диапазоне 25–30 для резкого торможения.
EngineForceСвойство
public float EngineForce { get; set; }Ускоряет транспортное средство, применяя силу двигателя. Транспортное средство ускоряется только в том случае, если колеса, у которых VehicleWheel3D.UseAsTraction установлен на true, соприкасаются с поверхностью. RigidBody3D.Mass транспортного средства влияет на ускорение транспортного средства. Для транспортного средства с массой, установленной на 1000, попробуйте значение в диапазоне 25–50 для ускорения.
Примечание: Моделирование не учитывает влияние передач, вам нужно будет добавить логику для этого, если вы хотите смоделировать передачи.
Отрицательное значение приведет к тому, что транспортное средство будет двигаться задним ходом.
SteeringСвойство
public float Steering { get; set; }Угол поворота рулевого колеса транспортного средства. Установка этого значения на ненулевое приведет к повороту транспортного средства во время движения. Колеса, у которых VehicleWheel3D.UseAsSteering установлен на true, будут автоматически поворачиваться.
Примечание: Это свойство редактируется в инспекторе в градусах. В коде свойство задается в радианах.
Методы6
GetBrakefloat
public float GetBrake();floatGetEngineForcefloat
public float GetEngineForce();floatGetSteeringfloat
public float GetSteering();floatSetBrakevoid
public void SetBrake(float brake);| Имя | Тип | По умолчанию |
|---|---|---|
brake | float | — |
SetEngineForcevoid
public void SetEngineForce(float engineForce);| Имя | Тип | По умолчанию |
|---|---|---|
engineForce | float | — |
SetSteeringvoid
public void SetSteering(float steering);| Имя | Тип | По умолчанию |
|---|---|---|
steering | float | — |