Car - WheelCollider - Why the side is getting up?

I’m programming this car tutorial here:

Car Tutorial

I’m now on the third video. My car controller script looks like this:

#pragma strict

var wheelFL : WheelCollider;
var wheelFR : WheelCollider;
var wheelRL : WheelCollider;
var wheelRR : WheelCollider;

var maxTorque : float  = 20;

function Start () {
	rigidbody.centerOfMass.y = -0.9;

function FixedUpdate () {

	wheelRR.motorTorque = maxTorque * Input.GetAxis("Vertical");
	wheelRL.motorTorque = maxTorque * Input.GetAxis("Vertical");
	wheelFL.steerAngle = 10 * Input.GetAxis("Horizontal");
	wheelFR.steerAngle = 10 * Input.GetAxis("Horizontal");


When I now drive and start turning left, the right side of the car gets up:

Car side gets up

I don’t know why.

The weights of rigidbodies, i mean the one for body and ones for whells, have you adjusted them realistic? The whells must be much more lighter then body.


Unity 5? I’d recommend tweaking forceAppPointDistance first, which sets the point where the suspension and tyre forces are applied at (look for the little green sphere). This has already an effect of lowered centre of gravity.

Now, if you still wish to lower the centre of gravity, you must understand that you are trying to cheat physics in some sense actually as in a real world such a vehicle would really tend to roll in corners.

Another important consideration is that once you assign a custom centre of gravity to a rigidbody, you should not be modifying it (scaling, adding new colliders, etc) because setting a custom centre of gravity has an effect of marking the body as having a custom inertia tensor set and that would require you to provide the correct inertia tensor manually. Unfortunately, Unity 5 does not offer any convenient tools for computing CoM and that would require you jump though some hoops honestly. This CoM ensor logic has been with Unity since forever, but I’d very much like to change it soon once the bug pressure settles down.