VehicleBody3D

Успадковує: RigidBody3D < PhysicsBody3D < CollisionObject3D < Node3D < Node < Object

Корпус фізики 3D, що імітує поведінку автомобіля.

Опис

Це фізичне тіло реалізує всю фізичну логіку, необхідну для моделювання автомобіля. Воно базується на системі raycast транспортних засобів, яка зазвичай зустрічається у фізичних двигунах. Окрім вузла CollisionShape3D для основного корпусу транспортного засобу, вам також потрібно додати вузол VehicleWheel3D для кожного колеса. Вам також слід додати вузол MeshInstance3D до цього вузла для 3D-моделі транспортного засобу, але ця модель, як правило, не повинна містити сітки для коліс. Ви можете керувати транспортним засобом за допомогою властивостей brake, engine_force та steering. Положення або орієнтацію цього вузла не слід змінювати безпосередньо.

Примітка: Локальна пряма адреса для цього вузла — Vector3.MODEL_FRONT.

Примітка: Початкова точка вашого VehicleBody3D визначатиме центр ваги вашого транспортного засобу. Щоб зробити транспортний засіб більш заземленим, початкову точку зазвичай тримають низько, переміщуючи CollisionShape3D та MeshInstance3D вгору.

Примітка: Цей клас має відомі проблеми та не призначений для забезпечення реалістичної 3D-фізики транспортних засобів. Якщо вам потрібна розширена фізика транспортних засобів, можливо, вам доведеться написати власну інтеграцію фізики за допомогою CharacterBody3D або RigidBody3D.

Посібники

Властивості

float

brake

0.0

float

engine_force

0.0

float

mass

40.0 (overrides RigidBody3D)

float

steering

0.0


Описи властивостей

float brake = 0.0 🔗

Повільнить транспортний засіб, застосовуючи гальмівну силу. Автомобіль сповільнюється, якщо колеса контактують з поверхнею. В залежності від RigidBody3D.mass транспортного засобу. Для автомобіля з масовим набором до 1000, спробуйте значення в діапазоні 25 - 30 для жорстких гальмівних гальмів.


float engine_force = 0.0 🔗

  • void set_engine_force(value: float)

  • float get_engine_force()

Прискорює транспортний засіб, застосовуючи силу двигуна. Транспортний засіб прискорюється лише тоді, коли колеса, для яких VehicleWheel3D.use_as_traction встановлено значення true, контактують з поверхнею. RigidBody3D.mass транспортного засобу впливає на його прискорення. Для транспортного засобу з масою, встановленою на 1000, спробуйте значення прискорення в діапазоні від 25 до 50.

Примітка: Моделювання не враховує вплив передач, вам потрібно буде додати логіку для цього, якщо ви хочете імітувати передачі.

Від'ємне значення призведе до руху транспортного засобу заднім ходом.


float steering = 0.0 🔗

  • void set_steering(value: float)

  • float get_steering()

Кут повороту керма транспортного засобу. Встановлення цього значення на ненульове призведе до повороту транспортного засобу під час руху. Колеса, для яких VehicleWheel3D.use_as_steering встановлено значення true, будуть автоматично повертатися.

Примітка: Ця властивість редагується в інспекторі в градусах. У коді властивість встановлюється в радіанах.