VehicleBody3D
继承: RigidBody3D < PhysicsBody3D < CollisionObject3D < Node3D < Node < Object
模拟汽车行为的 3D 物理体。
描述
该节点实现了模拟汽车所需的所有物理逻辑。它基于物理引擎中常见的射线投射的车辆系统。除了需要为车身添加一个 CollisionShape3D 之外,你还必须为每个车轮添加一个 VehicleWheel3D 节点。你还应该为车辆的 3D 模型的向这个节点添加一个 MeshInstance3D,但该模型通常不应该包含车轮的网格。你可以使用 brake、engine_force 和 steering 属性来控制车辆。不应该直接更改该节点的位置和朝向。
注意:VehicleBody3D 的原点将决定车辆的重心。为了让车辆能够更好地贴地,通常会将原点保持在较低的位置,并将 CollisionShape3D 和 MeshInstance3D 向上移动。
注意:该类存在已知问题,并非旨在提供逼真的 3D 车辆物理效果。如果想要高级车辆物理,可能必须使用 CharacterBody3D 或 RigidBody3D 类来编写自己的物理整合函数。
教程
属性
| ||
| ||
mass |
| |
|
属性说明
通过施加一个制动力使车辆减速。只有当车轮接触到表面时,车辆才会减速。使车辆充分减速所需的力,取决于车辆的 RigidBody3D.mass。对于一个质量被设置为 1000 的车辆,尝试使用 25 - 30 范围内的值进行紧急制动。
通过施加一个引擎力来加速车辆。只有当 VehicleWheel3D.use_as_traction 被设置为 true
的车轮与表面接触时,车辆才会加速。车辆的 RigidBody3D.mass 对车辆的加速度有影响。对于质量被设置为 1000 的车辆,请尝试使用 25 - 50 范围内的加速度值。
注意:模拟没有考虑齿轮的影响,如果想要模拟齿轮,需要为其添加逻辑。
负值将导致车辆倒车。
车辆的转向角。将该属性设置为非零值将导致车辆在移动时转弯。VehicleWheel3D.use_as_steering 设置为 true
的车轮将自动旋转。
注意:该属性在检查器中以度为单位进行编辑。在代码中,该属性以弧度单位设置。