:github_url: hide .. Generated automatically by doc/tools/makerst.py in Godot's source tree. .. DO NOT EDIT THIS FILE, but the VehicleBody.xml source instead. .. The source is found in doc/classes or modules//doc_classes. .. _class_VehicleBody: VehicleBody =========== **Inherits:** :ref:`RigidBody` **<** :ref:`PhysicsBody` **<** :ref:`CollisionObject` **<** :ref:`Spatial` **<** :ref:`Node` **<** :ref:`Object` **Category:** Core Brief Description ----------------- Physics body that simulates the behavior of a car. Properties ---------- +---------------------------+--------------------------------------------------------------+-----+ | :ref:`float` | :ref:`brake` | 0.0 | +---------------------------+--------------------------------------------------------------+-----+ | :ref:`float` | :ref:`engine_force` | 0.0 | +---------------------------+--------------------------------------------------------------+-----+ | :ref:`float` | :ref:`steering` | 0.0 | +---------------------------+--------------------------------------------------------------+-----+ Description ----------- This node implements all the physics logic needed to simulate a car. It is based on the raycast vehicle system commonly found in physics engines. You will need to add a :ref:`CollisionShape` for the main body of your vehicle and add :ref:`VehicleWheel` nodes for the wheels. You should also add a :ref:`MeshInstance` to this node for the 3D model of your car but this model should not include meshes for the wheels. You should control the vehicle by using the :ref:`brake`, :ref:`engine_force`, and :ref:`steering` properties and not change the position or orientation of this node directly. **Note:** The origin point of your VehicleBody will determine the center of gravity of your vehicle so it is better to keep this low and move the :ref:`CollisionShape` and :ref:`MeshInstance` upwards. Property Descriptions --------------------- .. _class_VehicleBody_property_brake: - :ref:`float` **brake** +-----------+------------------+ | *Default* | 0.0 | +-----------+------------------+ | *Setter* | set_brake(value) | +-----------+------------------+ | *Getter* | get_brake() | +-----------+------------------+ Slows down the vehicle by applying a braking force. The vehicle is only slowed down if the wheels are in contact with a surface. The force you need to apply to adequately slow down your vehicle depends on the :ref:`RigidBody.mass` of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 30 range for hard braking. .. _class_VehicleBody_property_engine_force: - :ref:`float` **engine_force** +-----------+-------------------------+ | *Default* | 0.0 | +-----------+-------------------------+ | *Setter* | set_engine_force(value) | +-----------+-------------------------+ | *Getter* | get_engine_force() | +-----------+-------------------------+ Accelerates the vehicle by applying an engine force. The vehicle is only speed up if the wheels that have :ref:`VehicleWheel.use_as_traction` set to ``true`` and are in contact with a surface. The :ref:`RigidBody.mass` of the vehicle has an effect on the acceleration of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 50 range for acceleration. **Note:** The simulation does not take the effect of gears into account, you will need to add logic for this if you wish to simulate gears. A negative value will result in the vehicle reversing. .. _class_VehicleBody_property_steering: - :ref:`float` **steering** +-----------+---------------------+ | *Default* | 0.0 | +-----------+---------------------+ | *Setter* | set_steering(value) | +-----------+---------------------+ | *Getter* | get_steering() | +-----------+---------------------+ The steering angle for the vehicle. Setting this to a non-zero value will result in the vehicle turning when it's moving. Wheels that have :ref:`VehicleWheel.use_as_steering` set to ``true`` will automatically be rotated.