VehicleBody

Inherits: RigidBody < PhysicsBody < CollisionObject < Spatial < Node < Object

模拟汽车行为的物理体。

描述

此节点实现了模拟汽车所需的所有物理逻辑。它是基于物理引擎中常见的射线投射的车辆系统。你需要为车的主体添加一个CollisionShape,并为车轮添加VehicleWheel节点。还应该为汽车的三维模型添加一个MeshInstance节点,但这个模型不应该包括车轮的网格。你应该通过使用brakeengine_forcesteering 属性来控制车辆,而不是直接改变这个节点的位置或方向。

注意:你的 VehicleBody 的原点将决定你的车辆的重心,所以最好保持低位,并将 CollisionShapeMeshInstance 往上移。

注意:这个类有已知的问题,并不是为了提供真实的 3D 车辆物理而设计。如果你想要高级的车辆物理,你可能需要使用另一个 PhysicsBody 类来编写你自己的物理集成。

教程

属性

float

brake

0.0

float

engine_force

0.0

float

mass

40.0 (overrides RigidBody)

float

steering

0.0

float

weight

392.0 (overrides RigidBody)

属性说明

Default

0.0

Setter

set_brake(value)

Getter

get_brake()

通过施加一个制动力使车辆减速。只有当车轮接触到表面时,车辆才会减速。你需要施加多少力来使你的车辆充分减速,取决于车辆的RigidBody.mass。对于一个质量设置为1000的车辆,尝试在25-30的范围内进行硬制动。


Default

0.0

Setter

set_engine_force(value)

Getter

get_engine_force()

通过施加一个引擎力来加速车辆。只有当 VehicleWheel.use_as_traction 设置为 true 并与表面接触的车轮才会加速。车辆的 RigidBody.mass 对车辆的加速度有影响。对于一个质量设置为 1000 的车辆,可以尝试在 25-50 的范围内选择加速度的值。

注意:模拟不考虑齿轮的影响,如果你想模拟齿轮,将需要为其添加逻辑。

负值将导致车辆倒车。


Default

0.0

Setter

set_steering(value)

Getter

get_steering()

车辆的转向角。将此设置为非零值将导致车辆在移动时转向。将VehicleWheel.use_as_steering设置为true的车轮会自动旋转。