# Car physics like cartoon cars

Hi guys,Please help me I’m making a multiplayer cartoon (low poly) type 3d car game where all cars fights with each other.
For that, I need my car physics like turning quickly and dodging bullets. I don’t want to use wheel colliders (I don’t need real car physics)
I tried finding on the everywhere but can’t find the physics I really need. How can I achieve this physics?

Car physics exactly like this game : https://play.google.com/store/apps/details?id=com.notdoppler.crashofcars&hl=en

This seems very do-able. All you need is some kind of simple collider(s) covering most of the car, a script for movement, and a RigidBody for physics. The RigidBody, with a bit of tweaking will give you the momentum and feel of that game pretty easily.

Your movement script should add force or somehow alter the velocity of your car. When the player clicks forward, add force to the RigidBody in the direction the car is facing. When the player clicks left/right, slightly rotate the car in that direction. Something like this can act as a template:

``````void Update()
{
float newRotation = transform.localEulerAngles.y + Input.GetAxis("Horizontal");
transform.localEulerAngles = new Vector3 (0f,newRotation, 0f);

Vector3 input = (transform.forward * Input.GetAxis("Vertical"));
rigidBody.AddForce (input* Time.deltaTime * 10, ForceMode.Impulse);
}
``````

Here is a script I have been working on - It doesn’t require any wheels so just make a cube with rigidbody.
It has basic drifting and is simplistic (and seriously needs some working on!) but I quite like it as I have just started
`public float movementSpeed;
public float turnSpeed;
public float drift;

``````void Start()
{
GetComponent<Rigidbody>().centerOfMass = new Vector3(0, -3, 0);
}

void Update()
{
transform.Translate(Input.GetAxis("Horizontal") * Time.deltaTime * drift * -1, 0f, Input.GetAxis("Vertical") * Time.deltaTime * movementSpeed);

if (Input.GetKey(KeyCode.A))
{
transform.Rotate(0, turnSpeed*-1, 0);
}
if (Input.GetKey(KeyCode.D))
{
transform.Rotate(0, turnSpeed, 0);
}
if (Input.GetKey(KeyCode.W))
{
drift = 30;
}
else
{
drift = 0;
}
``````

}`