VehicleBulk

继承: RigidBulk < PhysicsBulkBase < ColliderObjectBase < Item3D < Item < Object

模拟汽车行为的3D物理体。

描述

该物理体实现了模拟汽车所需的所有物理逻辑。它基于物理引擎中常见的光线投射车辆系统。除了用于车辆主体的ColliderShape之外,您还必须为每个车轮添加一个WheelCollider节点。您还应该为车辆的3D模型向该节点添加一个MeshRender,但该模型通常不应包括车轮的网格。您可以通过使用brakeengine_forcesteering属性来控制车辆。该节点的位置或方向不应直接更改。

注意:您的车辆的原点Body3D将决定您车辆的重心,为了使车辆更加接地,原点通常保持低,将ColliderShapeMeshRender向上移动。

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

属性

float

brake

0.0

float

engine_force

0.0

float

mass

40.0 (overrides RigidBulk)

float

steering

0.0


属性说明

float brake = 0.0 🔗

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


float engine_force = 0.0 🔗

  • void set_engine_force(value: float)

  • float get_engine_force()

通过施加发动机力来加速车辆。只有当WheelCollider.use_as_traction设置为true并与表面接触时,车辆才会加速。车辆的RigidBulk.mass对车辆的加速有影响。对于质量设置为1000的车辆,尝试25-50范围内的加速度值。

注意:模拟不考虑齿轮的影响,如果您希望模拟齿轮,则需要为此添加逻辑。

负值将导致车辆倒车。


float steering = 0.0 🔗

  • void set_steering(value: float)

  • float get_steering()

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

注意:此属性在检查器中以度数为单位进行编辑。在代码中,该属性以弧度为单位设置。