¡Arranca! — Tu primer juego de coches 3D en Unity

¡Arranca! — Tu primer juego de coches 3D en Unity
Casco puesto, curiosidad activada: hoy montamos un juego de coches 3D 🏁
✳ Tu primer proyecto · Unity 3D

Del garaje
al ¡brum!

¿Te gustaría crear un juego de coches? Vamos paso a paso: prepara el coche, dale ruedas que obedezcan, elige un escenario y pisa el acelerador. No necesitas un equipo de Fórmula 1 para empezar.

Guía para principiantes · prototipo arcade · sin comprar assets para empezar

Coche deportivo listo para salir a la carretera
Tu primera vuelta empieza aquí.Un coche · cuatro Wheel Colliders · un montón de ideas
GO!
01Configura coche y ruedas
02Prueba el script de conducción
03¡Diseña varias pistas!
La ruta más fácil

Primero lo primero:
un coche que ruede.

Empieza con un circuito sencillo y un coche feíto si hace falta. El cubo con ruedas también merece su oportunidad. Lo importante es probar la conducción antes de decorar.

01

Prepara el garaje

Crea un proyecto 3D. Añade un suelo, importa el modelo del coche y coloca un Rigidbody en el objeto raíz. Usa un collider sencillo en la carrocería.

02

Cuatro ruedas, cuatro colliders

Crea un WheelCollider por rueda. Ajusta posición, radio y suspensión para que el círculo del collider coincida con el neumático visible.

03

Conduce, choca, repite

Asigna las ruedas al script de abajo, pulsa Play y calibra. La física mejora mucho con el centro de masa bajo y una pista con buen collider.

Tip de mecánico: la rueda 3D que ves es solo el dibujo; el WheelCollider calcula la suspensión, el agarre y el contacto con el suelo. Mantén ambas piezas alineadas.
Cambia de paisaje

Cuatro mundos.
Un mismo volante.

Un buen escenario no solo se ve bonito: propone una manera distinta de jugar. Prueba la misma curva en asfalto, barro o arena y verás cómo cambia la carrera.

Montañas y lago rodeados de naturaleza
01 · curvas amplias

Montaña y bosque

Subidas, horquillas y un mirador para la foto de victoria.

Carretera atravesando un paisaje montañoso
02 · velocidad

Carretera costera

Rectas junto al mar y curvas para poner a prueba los frenos.

Bosque frondoso para una carrera de rally
03 · rally

Rally entre árboles

Una ruta de tierra, saltos pequeños y cero miedo a ensuciarse.

Dunas de arena cálida en un paisaje desértico
04 · derrapes

Desierto de dunas

Menos agarre, más derrape y polvo para el efecto dramático.

Mini reto: duplica la pista y cambia solo el suelo. En Unity puedes usar distintos Physic Materials para que asfalto, gravilla y hielo tengan diferente fricción.
Manos al código

El copiloto se llama
CarController.

Este controlador de ejemplo usa Wheel Colliders, dirección delantera, tracción trasera y freno de mano. Cópialo en un archivo C# con el mismo nombre y conecta las referencias en el Inspector.

CarController.cs
using UnityEngine;

[RequireComponent(typeof(Rigidbody))]
public class CarController : MonoBehaviour
{
    [Header("Ruedas: colliders")]
    [SerializeField] private WheelCollider ruedaDelanteraIzq;
    [SerializeField] private WheelCollider ruedaDelanteraDer;
    [SerializeField] private WheelCollider ruedaTraseraIzq;
    [SerializeField] private WheelCollider ruedaTraseraDer;

    [Header("Ruedas: mallas visibles")]
    [SerializeField] private Transform mallaDelanteraIzq;
    [SerializeField] private Transform mallaDelanteraDer;
    [SerializeField] private Transform mallaTraseraIzq;
    [SerializeField] private Transform mallaTraseraDer;

    [Header("Ajustes de conducción")]
    [SerializeField] private float fuerzaMotor = 1500f;
    [SerializeField] private float fuerzaFreno = 3000f;
    [SerializeField] private float anguloDireccion = 30f;
    [SerializeField] private Transform centroDeMasa;

    private Rigidbody cuerpo;
    private float acelerador;
    private float direccion;
    private bool frenoDeMano;

    private void Awake()
    {
        cuerpo = GetComponent<Rigidbody>();
        if (centroDeMasa != null)
            cuerpo.centerOfMass = transform.InverseTransformPoint(centroDeMasa.position);
    }

    private void Update()
    {
        acelerador = Input.GetAxis("Vertical");
        direccion = Input.GetAxis("Horizontal");
        frenoDeMano = Input.GetKey(KeyCode.Space);
    }

    private void FixedUpdate()
    {
        ruedaDelanteraIzq.steerAngle = direccion * anguloDireccion;
        ruedaDelanteraDer.steerAngle = direccion * anguloDireccion;

        ruedaTraseraIzq.motorTorque = acelerador * fuerzaMotor;
        ruedaTraseraDer.motorTorque = acelerador * fuerzaMotor;

        float freno = frenoDeMano ? fuerzaFreno : 0f;
        ruedaDelanteraIzq.brakeTorque = freno;
        ruedaDelanteraDer.brakeTorque = freno;
        ruedaTraseraIzq.brakeTorque = freno;
        ruedaTraseraDer.brakeTorque = freno;

        ActualizarMalla(ruedaDelanteraIzq, mallaDelanteraIzq);
        ActualizarMalla(ruedaDelanteraDer, mallaDelanteraDer);
        ActualizarMalla(ruedaTraseraIzq, mallaTraseraIzq);
        ActualizarMalla(ruedaTraseraDer, mallaTraseraDer);
    }

    private static void ActualizarMalla(WheelCollider collider, Transform malla)
    {
        collider.GetWorldPose(out Vector3 posicion, out Quaternion rotacion);
        malla.SetPositionAndRotation(posicion, rotacion);
    }
}

Si una rueda se queda quieta, revisa que el collider esté asignado y que su radio coincida con la rueda visible. Baja el centro de masa si el coche vuelca demasiado.

¿Quieres otra implementación para comparar? Este proyecto de GitHub ↗ incluye conducción, derrapes, boost y efectos; su repositorio indica licencia MIT. Comprueba sus instrucciones y compatibilidad antes de reutilizarlo.

Botín para empezar

Assets gratis para
llenar el garaje.

En la Asset Store busca por tipo de contenido y activa el filtro de precio gratuito. Los resultados pueden cambiar; estos accesos abren búsquedas de la tienda oficial.

Antes de importar: comprueba que el precio siga siendo 0, la licencia, la versión de Unity y si el paquete usa Built-in, URP o HDRP. Un asset gratis puede cambiar de precio o de compatibilidad.

En boxes · Unity al día

¿Qué ha cambiado
en Unity?

La física básica de coches sigue basándose en Rigidbody y Wheel Colliders. Las novedades del Editor afectan al flujo de trabajo y al render, no sustituyen el montaje del vehículo.

Unity 6 · notas actuales: 6000.6.7f1

En la consulta del 25 de octubre de 2026, la página oficial de novedades dirige a las notas de Unity 6000.6.7f1. Unity 6 publica versiones LTS y actualizaciones con mejoras y soporte de plataformas; revisa allí los cambios y la compatibilidad antes de actualizar el proyecto.

Notas oficiales de Unity Editor ↗

Wheel Collider: la guía práctica

Unity documenta el flujo para construir un coche de cuatro ruedas, configurar colliders, ajustar la suspensión y sincronizar las mallas. Es la referencia ideal si quieres ir más allá del script de ejemplo.

Tutorial oficial: crear un coche con Wheel Colliders ↗
Apunte: no hay que cambiar de versión para seguir este tutorial. Si actualizas Unity, haz una copia del proyecto y revisa las notas de esa versión antes de migrar.

Tu pista te está esperando.

Empieza con el coche más sencillo, consigue que doble y frene, y luego dale un mundo que merezca la pena explorar. La primera vuelta puede ser lenta; la diversión, no.

Ajustar las ruedas ↗

No hay comentarios