Physics body that simulates the behaviour of a car.
``````    public class VehicleBody : RigidBody
``````

This nodes 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 CollisionShape for the main body of your vehicle and add VehicleWheel nodes for the wheels. You should also add a 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 Brake, EngineForce, and Steering properties and not change the position or orientation of this node directly.

Note that 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 CollisionShape and MeshInstance upwards.

### Constructors

``````    public VehicleBody()
``````

### Properties

``````    public float Brake { get; set; }
``````

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 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.

``````    public float EngineForce { get; set; }
``````

Accelerates the vehicle by applying an engine force. The vehicle is only speed up if the wheels that have VehicleWheel.SetUseAsTraction(bool) set to true and are in contact with a surface. The 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 that 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.

``````    public float Steering { get; set; }
``````

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 VehicleWheel.SetUseAsSteering(bool) set to true will automatically be rotated.

### Methods

``````    public float GetBrake()
``````

Getter for Brake

``````    public float GetEngineForce()
``````

Getter for EngineForce

``````    public float GetSteering()
``````

Getter for Steering

``````    public void SetBrake(float brake)
``````

Setter for Brake

``````    public void SetEngineForce(float engineForce)
``````

Setter for EngineForce

``````    public void SetSteering(float steering)
``````

Setter for Steering

Tags: