1. Monte o carro
- Crie uma malha de carro com o pivô no centro e adicione um BoxCollider.
- Adicione um Rigidbody: massa em torno de 1000, drag baixo, angular drag moderado.
- Adicione o script abaixo e um collider de chão plano para testar.
2. O controlador
using UnityEngine;
[RequireComponent(typeof(Rigidbody))]
public class ArcadeCar : MonoBehaviour
{
public float acceleration = 25f;
public float maxSpeed = 30f;
public float turnSpeed = 90f;
public float grip = 6f;
Rigidbody rb;
float throttle, steer;
void Awake()
{
rb = GetComponent<Rigidbody>();
rb.centerOfMass = new Vector3(0f, -0.5f, 0f); // low centre = harder to flip
}
void Update()
{
throttle = Input.GetAxis("Vertical");
steer = Input.GetAxis("Horizontal");
}
void FixedUpdate()
{
Vector3 forward = transform.forward;
float speed = Vector3.Dot(rb.linearVelocity, forward);
if (Mathf.Abs(speed) < maxSpeed)
rb.AddForce(forward * throttle * acceleration, ForceMode.Acceleration);
// Steering scales with speed so the car cannot spin on the spot.
float dir = speed < -0.1f ? -1f : 1f;
float turn = steer * turnSpeed * Mathf.Clamp01(Mathf.Abs(speed) / 5f) * dir;
rb.MoveRotation(rb.rotation * Quaternion.Euler(0f, turn * Time.fixedDeltaTime, 0f));
// Cancel sideways velocity: this is the grip.
Vector3 lateral = Vector3.Dot(rb.linearVelocity, transform.right) * transform.right;
rb.AddForce(-lateral * grip, ForceMode.Acceleration);
}
}Usa linearVelocity do Unity 6. Em versões mais antigas, use velocity. Usa os eixos do Input Manager clássico; com o novo Input System, leia os mesmos valores das suas ações.
3. Ajuste a sensação
| Para obter | Mude |
|---|---|
| Carro solto, que derrapa | Reduza a aderência (2 a 3) |
| Carro firme, esportivo | Aumente a aderência (8 a 12) e baixe o centro de massa |
| Sensação mais pesada | Aumente a massa e reduza a aceleração |
| Curvas mais fechadas | Aumente turnSpeed |
Adicione uma câmera que segue por trás com um pouco de atraso e áudio de motor que sobe com a velocidade para vender a sensação.
4. WheelColliders ou não?
WheelColliders simulam suspensão e atrito dos pneus, o que serve para simuladores de corrida mas exige ajuste. Para jogos de crime em mundo aberto e corridas arcade, a abordagem por forças acima é mais fácil de deixar divertida.
5. Adicione tráfego
Uma rua sem carros parece morta. O Traffic System dá carros com IA que seguem faixas e param em cruzamentos, para você focar no seu carro. Leia como fazer pedestres NPC e IA de tráfego para ver como funciona.
Perguntas frequentes
Adicione um Rigidbody e um collider, aplique forças para acelerar, gire para virar e cancele a velocidade lateral para dar aderência. O script acima faz isso.
Use para suspensão realista. Em jogos arcade, um Rigidbody por forças é mais simples e fácil de ajustar.
Baixe o centro de massa, alargue o collider ou reduza a direção em alta velocidade.
As ideias são as mesmas. O Godot tem VehicleBody3D e o Unreal tem Chaos Vehicles, e você pode aplicar a mesma abordagem por forças.
Quem escreveu
Imersa Studios cria os sistemas Unity, packs low poly e guias vendidos no itch.io. O código e as técnicas daqui vêm de lançar esses produtos. Saiba mais sobre o estúdio.

