changing gravity for one object.

so i have a car in my game..... and i want it to have more gravity then other objects.

i have tried using

rigidbody.AddForce(0,-25,0); 

but it does not work.. and i have tried the constant force component but it has the same results.

what happens is it moves down really slowly even when i have it set to -25 or something.

i have tried disabling the car script but it does the same thing.

so i thought that it might be something to do with the wheel colliders....

any thought on how to fix this would be nice.....

thanks

Function FixedUpdate()
    {
    rigidbody.AddForce(Physics.gravity * rigidbody.mass);
    }

This means 2g for that rigidbody. Moreover, if now you disable rigidbody's "Use Gravity" you'll get the normal 1g results.

Two quick things you can check:

  • Physics is affected by scale. A person jumping off a building takes longer to hit the ground than a lego man falling off a box at the same relative scale. If your scale is huge, it will make your physics appear in slow motion. Check how many units your car is long (ideally 4 or thereabouts).

  • Time step / Time Scale. Both found under Settings -> Time. They will affect the overall speed of your simulation, but it's worth playing around with these and the forces applied to your car.

Have you tried altering global gravity anyway? What undesirable behaviour (if any) does it cause elsewhere?

ForceMode.Force (default) incorporates mass, so you'd have to multiply the force by mass to make it work like gravity.

ForceMode.Acceleration works regardless of mass, just like real gravity. This is what Rigidbodies use when UseGravity is checked.

Just change the mass of the car’s rigidbody, it should be slower…

I have the answer. UnityAnswers

For anyone still looking for this, check this out: Unity - Modify Per-Object Gravity of Rigidbodies in Unity [2023 UPDATED] - YouTube