Skip to content

Arcade Vehicle Driver - Manual de usuario ​

Arcade Vehicle Driver

Arcade Vehicle Driver es un kit completo de manejo arcade de coches para Unity, basado en las mecánicas de juego de Driver 2. Te da coches que derrapan, hacen burnouts, saltan y chocan con el peso y la sensación de un juego de conducción arcade 3D clásico, además de los efectos, el sonido, la cámara y las herramientas de editor para poner tus propios coches en la carretera en minutos.

Este manual explica cómo funciona el paquete y cómo usarlo y configurarlo. Todos los ajustes de todos los componentes se enumeran, con su valor predeterminado y lo que hacen, en la Referencia de ajustes. Las mismas descripciones aparecen en los inspectores: pasa el ratón sobre un ajuste o activa Field descriptions en la parte superior de cualquier inspector del paquete.

Los nombres de menús, componentes, secciones de inspector y ajustes están en inglés, tal como aparecen en Unity.

Contenido ​

  1. Características
  2. Requisitos e instalación
  3. Inicio rápido
  4. El ejemplo Playground
  5. Cómo funciona
  6. Configurar un vehículo
  7. Ajustar el manejo
  8. Motor, encendido y claxon
  9. Caja de cambios y transmisiones
  10. Transmisión y tracción
  11. Salidas y burnouts
  12. Daño
  13. El mundo: suelo, superficies y escenario
  14. Efectos del vehículo
  15. Efectos de impacto
  16. Audio del vehículo
  17. Cámara
  18. Entrada, controles y el Vehicle Manager
  19. Debug HUD
  20. Scripts e IA
  21. Menú del editor
  22. Inspectores
  23. Rendimiento y determinismo
  24. Solución de problemas
  25. Carpetas y assemblies
  26. Notas sobre el contenido

1. Características ​

  • Simulación de tick fijo. Física determinista con enteros (punto fijo) a 30 ticks por segundo por defecto, independiente de la tasa de fotogramas; el renderizado se interpola entre ticks, así que es fluido a cualquier FPS. Los coches no usan rigid bodies de Unity.
  • Manejo. Suspensión, agarre de los neumáticos, derrapes con freno de mano, burnouts, saltos, entrada en curva con el "auto brake" de la dirección, limitadores de velocidad y de marcha atrás, control de crucero, tracción trasera / delantera / total, límite de tracción opcional.
  • Motor y caja de cambios. Encendido opcional con motor de arranque y fallos de arranque según el daño, claxon, transmisiones automática / manual / manual con embrague, marchas configurables, rango de RPM y limitador de revoluciones, burnouts de brake stand y salidas.
  • Colisiones y daño. Colisiones coche contra coche (3D) y coche contra escenario, seis zonas de daño, límite de destrucción, resistencia por vehículo; daño visual con abolladuras, materiales dañados, piezas desmontables y cristales que se rompen.
  • Efectos. Humo y fuego del motor según el daño, escape, restos de golpes, marcas de neumáticos, humo y polvo por tipo de suelo, chispas y sonidos de impacto por material.
  • Audio. Motor clásico de dos loops o motor por capas con N loops, encendido, chirrido de neumáticos con sensibilidad ajustable, cambios de marcha, golpes, claxon, viento, motor dañado. AudioSources de Unity o una salida FMOD opcional.
  • Cámara. Modos chase, bumper, mounted (capó, cockpit) y tripod con transiciones, órbita, vibración, esquiva de obstáculos y posiciones de cámara por vehículo; vista previa en el modo de edición.
  • Herramientas. Vehicle Setup Wizard, detección de ruedas, Fit Physics To Model, handles en la Scene view para la forma de la carrocería, escenario de vista previa de la definición, inspectores por secciones con ayuda integrada, debug HUD.
  • Preparado para IA. Cualquier cosa que implemente una interfaz puede conducir un coche por la misma ruta de código que el jugador.

2. Requisitos e instalación ​

ElementoRequisito
UnityUnity 6 (desarrollado y probado en 6000.6)
Render pipelineUniversal Render Pipeline (los materiales de efectos y del ejemplo usan shaders URP)
PaquetesInput System (1.x) - obligatorio. ProBuilder (5.x o posterior) - solo para la escena de ejemplo Playground y su generador
OpcionalFMOD for Unity 2.02+ para la salida de audio FMOD
  1. Importa el paquete. Todo está en una carpeta (Assets/ArcadeVehicleDriver por defecto; puedes moverla).
  2. Si el proyecto aún no usa el Input System, Unity pregunta si quieres activar el nuevo backend de entrada: acepta y deja que el editor se reinicie (Project Settings > Player > Active Input Handling = Input System Package o Both).
  3. Ejecuta Tools > Arcade Vehicle Driver > Setup Project. Crea los tres layers que usa el paquete (AVDGround, AVDScenery, AVDVehicle) y los assets predeterminados en Defaults/ (bindings, camera profile, impact materials, efectos, sonidos provisionales). Se puede volver a ejecutar sin problema.

3. Inicio rápido ​

De una escena vacía a conducir tu propio coche:

  1. Tools > Arcade Vehicle Driver > Setup Project (una vez por proyecto).

  2. Marca el mundo. Selecciona tus carreteras / terreno y ejecuta Tools > Arcade Vehicle Driver > World > Mark Selection As Ground. Selecciona edificios, muros y postes y ejecuta Mark Selection As Scenery (Solid) (o Barrier para muros largos y barandillas, Smashable para objetos que los coches derriban).

  3. Crea el coche. Abre Tools > Arcade Vehicle Driver > Vehicle Setup Wizard..., arrastra el modelo del coche (cada rueda debe ser un objeto independiente), ajusta Model Front Points To y Model Scale, elige un Body Type, pulsa Create Vehicle In Scene, revisa el resultado y pulsa Save Prefab.

    Vehicle Setup Wizard

  4. Prepara la escena. Tools > Arcade Vehicle Driver > Setup Scene añade el objeto de sistemas (physics world, efectos, HUD, vehicle manager) y el rig de cámara en la Main Camera.

  5. Pulsa Play y haz clic en la Game view para que reciba el teclado. W / S aceleran y frenan, A / D giran, Espacio es el freno de mano, E un burnout. F1 muestra el debug HUD, F2 los controles.

4. El ejemplo Playground ​

Samples/Playground/Scenes/Playground.unity es una pequeña ciudad de pruebas: manzanas y callejones, un parque, un solar de arena con cajas destructibles, una plaza de acrobacias con rampas, una meseta y barreras, y colinas, con varios coches de ejemplo. Tab alterna entre los coches conducibles, V recorre los modos de cámara. La escena necesita ProBuilder (su geometría son mallas de ProBuilder); Tools > Arcade Vehicle Driver > Samples > Build Playground Scene la reconstruye por código.

Playground

5. Cómo funciona ​

La simulación se ejecuta en ticks fijos (AVD Physics World > Tick Rate, 30 por defecto). Cada tick lee los controles de todos los coches, calcula las fuerzas de suspensión, neumáticos y carrocería, resuelve las colisiones y mueve los coches. Todo es aritmética de enteros, así que una misma secuencia de entradas siempre da el mismo resultado. Los transforms que ves se interpolan entre los dos últimos ticks. Como las constantes de física son por tick, la tasa de ticks es la velocidad del juego: deja 30, salvo que quieras que todo vaya más rápido o más lento.

Unidades. Dentro de la simulación, 160 unidades = 1 metro (Units Per Meter), las proporciones usan 4096 = 1,0 y los ángulos 4096 = 360 grados. Los inspectores muestran metros donde ayuda; la Referencia de ajustes da valores típicos.

Valores predeterminados clásicos. Cada valor predeterminado reproduce el manejo de referencia ("classic"); las funciones opcionales (encendido, caja manual, límite de tracción, burnouts de brake stand...) empiezan desactivadas.

Las piezas:

PiezaQué es
AVD Physics WorldUno por escena (se crea automáticamente si falta). Ejecuta los ticks, consulta el suelo y el escenario, lanza eventos de colisión.
AVD VehicleEn la raíz del vehículo. Su transform es el origen de la física (centro de rotación); el modelo es un hijo orientado hacia +Z.
Vehicle DefinitionAsset compartido por todos los coches de un modelo: geometría, manejo, ajuste, caja de cambios, transmisión, daño, efectos.
AVD Player Input / cualquier controladorDa al coche un tick de controles. La IA usa el mismo punto de entrada.
AVD Vehicle ManagerQué coches conduce el jugador (Tab alterna) y la transmisión del jugador.
AVD Chase CameraEl rig de cámara, guiado por un asset Camera Profile.
Effects, Audio, Damage, HUDSolo presentación: leen la simulación y nunca la modifican.

Layers. Suelo = colliders en AVDGround (carreteras, terreno, rampas). Escenario = colliders en AVDScenery (edificios, muros, postes, objetos). Los vehículos están en AVDVehicle. Puedes renombrarlos en AVD Physics World > World queries.

Mover un coche. Nunca muevas directamente el transform de un vehículo: llama a Teleport(position, yaw) o ResetUpright().

6. Configurar un vehículo ​

6.1 El modelo ​

Un vehículo es un objeto raíz con AVD Vehicle (y AVD Player Input para el jugador) y el modelo como hijos. Requisitos del modelo:

  • Mira hacia +Z con +Y hacia arriba (el wizard puede girarlo por ti).
  • Cada rueda es un objeto independiente (los vehículos con más de cuatro ruedas circulan sobre las cuatro exteriores; las ruedas extra son solo visuales).
  • Para el daño visual, sus mallas deben ser legibles (el inspector de daño puede activar Read/Write).

6.2 Vehicle Setup Wizard ​

El wizard convierte un modelo en un vehículo que funciona: orientación, detección de ruedas (por nombre: wheel, tire, tyre, rim... y por posición), pivots de rueda centrados, una nueva definición ajustada al modelo a partir de una plantilla de body type (Sedan, Coupe, Long Sedan, Muscle, Van, Sports), player input y un prefab. El body type aporta la potencia del motor, el agarre, la inercia y la disposición de los puntos de contacto; las dimensiones salen de tu modelo.

6.3 El inspector de AVD Vehicle ​

Inspector de AVD Vehicle

  • Vehicle: la definición y el tipo de control (Player = manejo preciso con bloqueo de ruedas en frenadas fuertes, AI = la ruta más barata para el tráfico, None = no se simula).
  • Wheels: los cuatro slots en el orden Front Right, Rear Right, Front Left, Rear Left. Detect Wheels los rellena; Centre Wheel Pivots mete las ruedas descentradas en un padre centrado para que giren bien. Wheel Placement: Model Position deja cada rueda donde la tiene el modelo y solo la mueve con la suspensión; Physics Contact Points dibuja las ruedas en los puntos de contacto de la definición.
  • Engine and horn: encendido opcional (consulta la sección 8).
  • Steering wheel: opcional; gira con las ruedas delanteras (Rotation Range de tope a tope, eje, pivot).
  • Damage: los ajustes de daño de la definición o la sustitución propia de este coche, y el daño con el que empieza.
  • Camera positions: las posiciones de este coche para los modos de cámara Mounted (cockpit, capó...), asociadas por el nombre del modo. Edit muestra handles en la Scene view, Align To Scene View copia la cámara de la Scene, Preview la muestra.
  • Scene view helpers: qué gizmos dibujar y la leyenda.
  • Fit physics to model: mide las ruedas y la carrocería y escribe los puntos de contacto de las ruedas, el tamaño de las ruedas, la caja de colisión y los puntos de contacto de la carrocería en la definición (Undo lo restaura todo).

6.4 Ayudas de la Scene view y forma de la carrocería ​

Ayudas de la Scene view

Con el vehículo seleccionado: blanco = origen de la física y dirección hacia delante, cian = caja de colisión, amarillo = los 12 puntos de contacto de la carrocería (mantienen el chasis fuera del suelo y lo suben a los escalones), verde = puntos de contacto y círculos de las ruedas (compáralos con las ruedas del modelo), verde claro = recorrido de la suspensión, naranja / gris = puntos de efecto del motor y del escape. Damage Zones (desactivado por defecto) dibuja las seis zonas de daño.

Edit Body Shape In Scene (inspector del vehículo o de la definición) permite arrastrar las caras de la caja de colisión y los puntos de la carrocería. Mirror Left / Right mantiene ambos lados simétricos y Points Follow Box escala los puntos con la caja. Los cambios se guardan en la definición, admiten Undo y se aplican al momento en el modo Play.

Vista previa de la definición. En el inspector de la definición, Open Preview In Scene View abre un escenario aislado (como el Prefab Mode) con un modelo de vista previa, todas las ayudas y los handles, mientras la definición sigue en el inspector.

7. Ajustar el manejo ​

Vehicle Definition

La Vehicle Definition contiene cómo se conduce un tipo de vehículo. Sus secciones:

SecciónContenido
Overview and previewResumen de tamaño en metros, Apply Preset (body type), vista previa en la Scene.
Geometry, engine and gripPuntos de contacto y tamaño de las ruedas, Power Ratio, Traction, caja de colisión, centro de gravedad, puntos de la carrocería, inercia, masa.
HandlingAgarre general (Friction Scale Ratio), frenada agresiva, auto brake de la dirección, transmisión, límite de tracción.
TuningEscala de aceleración, velocidad máxima y de crucero, frenos, marcha atrás, agarre del freno de mano, suspensión, dirección, gravedad.
GearboxRango de RPM, limitador de revoluciones, número de marchas, puntos de cambio.
Launch and burnoutBurnouts de brake stand y salidas opcionales.
DamageLímite de destrucción y multiplicadores de daño.
EffectsImpact material, perfil de efectos y puntos de efecto.

Los cambios de ajuste y manejo se aplican al momento en el modo Play; los cambios de geometría necesitan el Reload Cosmetics del vehículo (menú contextual) o reiniciar el modo Play.

Recetas:

ObjetivoCambio
Más aceleración y velocidad máximaPower Ratio más alto (4096 = coche normal, 4700 = muscle car) o Acceleration Scale más alto
Velocidad máxima fijaMax Speed Kmh (0 = solo la limita la resistencia, unos 130 km/h para un coche normal)
Más agarre, menos deslizamientoTraction más alto (4096-4400), o Friction Scale Ratio más alto (32 = normal, 45-68 = camiones / 4x4)
Coche de driftTraction algo más bajo, Handbrake Front Grip más alto, Auto Brake On activado
Coche estable, subviradorAuto Brake On desactivado, Twist Rate Y más bajo
Camión o furgoneta pesadosPower Ratio 3000, Mass más alto, Twist Rate Y / Z más bajos (180 / 900), Gravity más negativo
Suspensión más duraSpring Rate más alto, Spring Damping más alto
Frenada más cortaBrake Scale más alto, Aggressive Braking activado
Dirección más rápidaSteer Rate más alto (teclado / cruceta), Max Steer más alto (ángulo)
Coche más resistenteMax Damage más alto o Damage Taken más bajo (sección Damage)

8. Motor, encendido y claxon ​

AVD Vehicle > Engine and horn. Con Use Ignition desactivado (el valor predeterminado), el motor siempre está en marcha. Con él activado:

  • El motor puede estar apagado (Start Running desactivado = el coche empieza apagado). Mientras está apagado, el coche frena y gira, pero no puede acelerar, ir marcha atrás, hacer burnout ni usar el crucero.
  • Arráncalo con la acción Ignition (I), desde scripts (StartEngine(), StopEngine(), ToggleEngine()) o con Start On Throttle (acelerar gira la llave, útil para la IA).
  • El motor de arranque gira durante Crank Seconds (un tiempo fijo, o marca Random para un tiempo distinto entre Min y Max en cada arranque), el motor prende, las revoluciones suben (Start Flare) y vuelven al ralentí.
  • Start Failures: Above Damage (a partir de un X% de daño, arrancar puede llevar hasta N intentos) o Damage Levels (una lista, por ejemplo 20% = hasta 3, 60% = hasta 5, 90% = hasta 8 intentos). Un coche destrozado se cala (Stall When Wrecked) y solo gira el motor de arranque (Wrecked Cannot Start) hasta que se repara.
  • El humo del motor y el escape se detienen mientras el motor está apagado; el fuego de un coche destrozado sigue ardiendo.

Claxon: Has Horn; la acción Horn (H), SetHorn(bool) para mantenerlo o Honk(seconds) desde scripts. El evento HornChanged permite que otros sistemas reaccionen (peatones, por ejemplo).

9. Caja de cambios y transmisiones ​

Definition > Gearbox:

  • Idle Rpm / Max Rpm: el rango de RPM del coche. Lo usan el cuentarrevoluciones, el sonido del motor y todos los ajustes de RPM. Cambiarlo reescala la lectura y el sonido, no la conducción.
  • Limiter Rpm: el limitador de revoluciones para cualquier transmisión. Igual a Max Rpm = sin límite extra (clásico). Menor: el automático sube de marcha antes y la marcha más larga llega como mucho hasta ahí; en manual, cada marcha llega como mucho hasta ahí.
  • Custom Gear Count (1-8) y Custom Shift Rpm (dónde sube de marcha el automático, un valor por cambio).

Las marchas clásicas dan forma a las revoluciones y al sonido; el empuje en sí no depende de la marcha en el automático.

AVD Vehicle Manager > Transmission fija cómo cambia de marcha el jugador (la IA siempre usa el automático):

ModoCómo se conduce
AutomaticClásico. La marcha sigue a la velocidad; mantener el freno con el coche parado da marcha atrás.
ManualGear Up (X) / Gear Down (Z) por R, N, 1, 2... El freno solo frena (y sujeta el coche a paso de peatón); la marcha atrás es la marcha R (seleccionable por debajo de 5 km/h). Cada marcha llega como mucho al limitador; una marcha demasiado larga para la velocidad tira poco.
Manual With ClutchComo Manual, pero cambiar de marcha requiere mantener el embrague (Clutch, Ctrl izquierdo), y el motor queda desconectado mientras se mantiene.

En punto muerto, con el embrague pisado, con acelerar + frenar en manual o con el freno de mano echado, el acelerador solo sube de vueltas el motor (hasta el limitador), y así suena.

10. Transmisión y tracción ​

Definition > Handling > Drivetrain: Rear Wheel Drive (clásico), Front Wheel Drive o All Wheel Drive. El empuje total es el mismo en todas las configuraciones (la tracción a las cuatro ruedas no añade potencia); la tracción total lo reparte entre los ejes (Front Drive Share, 0,4 = 40% delante) y, con Adaptive Split, lo desplaza hacia el eje con más agarre: el cargado en una subida o al acelerar, el que está sobre asfalto cuando el otro está sobre hierba, arena o agua.

Traction Limit (desactivado = clásico): cada rueda motriz solo puede empujar tanto como le permite el peso que soporta (Traction Grip). Al acelerar o en una subida, el eje delantero se descarga, así que un coche de tracción delantera patina y tira menos, la tracción trasera gana agarre y la total sigue tirando. La hierba y la arena ya reducen el agarre a la mitad.

11. Salidas y burnouts ​

  • Botón Burnout (E / Círculo): las ruedas motrices patinan y el coche sale disparado, hasta que agarra.
  • Burnout de brake stand (Definition > Launch and burnout > Brake Stand Burnout, desactivado por defecto): acelera contra los frenos desde parado (manual: primera marcha + freno de mano; automático: acelerar + frenar). Las revoluciones suben desde el ralentí durante Build Up Seconds, las ruedas motrices cogen vueltas y pierden agarre (humo, chirrido) y los frenos sujetan el otro eje. Los coches muy por encima de Min Power avanzan despacio (Creep); los más débiles (furgonetas) solo suben de vueltas, igual que los de tracción total. Soltar los frenos con el acelerador pisado lanza el coche con un burnout; suelta antes el acelerador para salir con calma.

12. Daño ​

12.1 Daño en la simulación ​

Cada coche tiene seis zonas de daño (delantera izquierda, delantera derecha, lateral derecho, trasera derecha, trasera izquierda, lateral izquierdo) y un total. Los golpes suman daño a la zona donde impactan; el coche queda destrozado cuando el total llega a Max Damage (22000 por defecto): humo negro y fuego, el motor se cala (con el encendido) y, con Wrecked Stops Car, se bloquea.

Definition > Damage (o una sustitución por vehículo): Max Damage, Damage Taken (0,5 = blindado, 2 = frágil, 0 = indestructible), multiplicadores Front / Side / Rear Damage y Side Hits By Direction. Start Damage en el vehículo fija el daño con el que aparece. En el modo Play, el inspector del vehículo muestra el daño con un slider y Repair.

Zonas de daño

12.2 Daño visual ​

Añade AVD Vehicle Damage al vehículo para mostrar el daño en el modelo. Cada función se puede activar o desactivar; el manejo nunca se ve afectado.

Daño visual

  • Dents (abolladuras): Zones (cada zona aplasta su parte de la carrocería), Impact Point (cada golpe abolla donde impactó, en la dirección del golpe) o Hybrid. La forma de la abolladura se genera, así que funciona con cualquier modelo.
  • Damaged material: una capa de arañazos / suciedad dibujada sobre las zonas dañadas.
  • Detachable parts: se encuentran por nombre (hood, bumper, door, spoiler, mirror...) o se listan a mano; salen volando con la física de Unity.
  • Glass: las ventanas se agrietan y luego se rompen en fragmentos.

En el modo Play, el inspector tiene golpes de prueba por zona; los scripts pueden llamar a ApplyHit(worldPoint, damage).

13. El mundo: suelo, superficies y escenario ​

  • Suelo = colliders en AVDGround, encontrados con rayos hacia abajo. El suelo no debe tener caras verticales: los puntos de la carrocería suben el coche a cualquier escalón de hasta Probe Up (2,5 m). Pon una caja de escenario bajo las rampas y plataformas para que sus lados actúen como paredes.
  • Tipos de superficie: Road, Grass (irregular, la mitad de agarre), Water / Deep Water (fuerte resistencia), Sand, Alley. El tipo de un collider sale de un componente AVD Surface en él, si no de su PhysicsMaterial mapeado en AVD Physics World > Surfaces By Physics Material (World > Set Surface Of Selection los asigna), si no Road.
  • Escenario = colliders en AVDScenery, usados como cajas verticales. AVD Scenery Object añade opciones: Barrier (los coches se deslizan a lo largo de él), Smashable (los coches lo atraviesan y lo derriban; tiempo de reaparición, masa, impulso) y un impact material.
  • AVD Physics World: tasa de ticks, unidades por metro, humedad por lluvia (menos agarre), alcance de las sondas de suelo y el reloj (su propio bucle de tick fijo o el FixedUpdate de Unity, con resultados idénticos).

14. Efectos del vehículo ​

AVD Vehicle Effects (en el objeto de sistemas) ejecuta los efectos de todos los coches, al ritmo de los ticks de simulación:

Efectos

  • Humo del motor según el daño: blanco a partir de un daño delantero de 2000, negro a partir de 3000, fuego cuando está destrozado; se desvanece con la velocidad.
  • Escape: bocanadas cuando está casi parado (negras cuando está muy dañado).
  • Restos de golpes en golpes contra coches y escenario.
  • Neumáticos: cuando un eje desliza más allá del umbral de derrape o las ruedas motrices patinan, cada rueda deja marcas de neumático y suelta humo o polvo.

El lado del vehículo es un AVD Vehicle Effects Profile (definición > Effects, si no el predeterminado del componente). Cada slot de partículas admite tu propio prefab de ParticleSystem o partículas generadas. Los emisores son los Effect Points de la definición (motor y tubos de escape), automáticos o arrastrados en la Scene view.

El lado del suelo es un asset AVD Surface Effects por tipo de suelo: color, anchura y material de la marca, humo de derrape, restos, sonidos de los neumáticos. Una rueda elige su superficie por la primera coincidencia entre: AVD Surface > Surface Effects en el objeto, el render material del suelo, la terrain layer más pintada, el PhysicsMaterial del collider, el tipo de superficie, el predeterminado.

15. Efectos de impacto ​

AVD Impact Effects reproduce partículas y sonidos para cada colisión: golpes contra coches, golpes contra el escenario, aterrizajes y objetos destrozados. Cada impacto elige un AVD Impact Material (velocidad mínima y de intensidad máxima en km/h, partículas, cantidad, sonidos aleatorios): el propio del vehículo o del objeto de escenario, un mapeo por superficie o PhysicsMaterial, o el predeterminado para su tipo (se incluyen Sparks, Dust, Dirt y Wood Chips).

16. Audio del vehículo ​

Añade AVD Vehicle Audio a un vehículo y dale un Vehicle Sound Profile (uno por tipo de vehículo). Tools > Arcade Vehicle Driver > Audio > Generate Placeholder Sounds crea clips provisionales y dos perfiles (Classic y Layered); sustituye los clips por grabaciones.

Sound profile

  • Motor, Classic: un loop de ralentí y un loop de revoluciones, con pitch según las revoluciones y crossfade según el acelerador.
  • Motor, Layered: cualquier número de loops grabados a RPM fijas (más loops opcionales sin acelerador), con crossfade según RPM y carga, como en los juegos de carreras modernos.
  • Encendido: loop del motor de arranque, arranque y parada del motor.
  • Neumáticos: chirrido según el deslizamiento con Skid sensitivity (inicio, máximo, volumen inicial; por defecto empieza justo donde los neumáticos empiezan a dejar marcas) y ruido de rodadura según la velocidad, ambos por tipo de suelo.
  • Otros: cambios de marcha, golpes de suspensión, claxon, viento, motor dañado.

Todo el suavizado se ejecuta por tick de simulación. La salida son AudioSources de Unity (mixer groups y ajustes 3D en el perfil). FMOD: importa FMOD for Unity, ejecuta Tools > Arcade Vehicle Driver > Audio > FMOD Integration > Enable, añade AVD FMOD Vehicle Audio Output junto a AVD Vehicle Audio y asigna tus eventos; RPM, carga, velocidad, derrape, superficie y más se envían como parámetros. Cualquier componente que implemente IAVDVehicleAudioOutput puede sustituir la salida (Wwise, un mezclador propio).

17. Cámara ​

AVD Chase Camera (en la Main Camera) usa un asset Camera Profile, que se edita dentro del inspector de la cámara. Cada modo tiene un tipo:

TipoUso
ChaseLa cámara de seguimiento: encuadre según el tamaño del coche (Classic Framing), retraso, balanceo en curvas, FOV y distancia según la velocidad.
MountedVistas de parachoques, capó o cockpit, con posiciones por vehículo (AVD Vehicle > Camera positions).
TripodUna cámara de televisión junto a la carretera por delante de la cual pasa el coche.

Cada modo puede añadir órbita manual (botón derecho del ratón / stick derecho), esquiva de obstáculos y vibración (impactos, aterrizajes, velocidad). V / Start recorre los modos, Q / R3 mira atrás. Con el juego detenido, la Game view previsualiza el modo seleccionado (Edit Mode Preview simula velocidad y dirección). Add Example Modes añade un chase dinámico, un chase lejano, una vista de capó y un tripod.

Cámara bumper

18. Entrada, controles y el Vehicle Manager ​

AcciónTecladoMando
AcelerarW / Flecha arribaCross (A), RT (analógico)
Frenar / marcha atrásS / Flecha abajoSquare (X), LT
GirarA D / flechasstick izquierdo, cruceta
Giro rápidoMayús izquierdaL1
Freno de manoEspacioTriangle (Y), R1
BurnoutECircle (B)
Control de cruceroCcruceta arriba
ClaxonHL3
Encender / apagar el motor (con encendido)I(asígnalo en el asset)
Subir / bajar marcha (manual)X / Z(asígnalo en el asset)
Embrague (manual con embrague)Ctrl izquierdo(asígnalo en el asset)
Reiniciar el cocheRSelect
Mirar atrásQR3
Siguiente cocheTabcruceta abajo
Siguiente modo de cámaraVStart
Girar la cámarabotón derecho del ratón + ratónstick derecho
HUD / ayuda / pausa / avanzar un tickF1 / F2 / P / .

Los bindings están en Defaults/AVDVehicleControls.inputactions (maps Vehicle y Camera); edítalos en el editor de Input Actions. También tiene las acciones GearReverse, GearNeutral y Gear1..Gear8 sin binding, para una palanca en H o teclas numéricas. AVD Player Input trabaja con su propia copia de los bindings por coche y tiene los ajustes de zona muerta del stick, acelerador analógico y vibración.

AVD Vehicle Manager (uno por escena, lo añade Setup Scene): la lista de vehículos conducibles, la cámara que sigue al activo, el vehículo al empezar y la Transmission del jugador. Solo la entrada del vehículo activo está habilitada; los demás quedan aparcados con el freno de mano echado.

Vehicle Manager

19. Debug HUD ​

AVD Debug HUD (en el objeto de sistemas): F1 lo muestra u oculta, F2 la ayuda de controles, P pausa la simulación y . avanza un tick. Modern (UI Toolkit): velocidad, marcha, barra de RPM con zona roja, acelerador / freno / dirección, indicadores (freno de mano, burnout, crucero, auto brake, claxon, motor), daño total, un coche visto desde arriba con las seis zonas de daño, los cuatro neumáticos (suspensión, GRIP / SLIDE / SPIN / LOCKED / AIR, tipo de suelo), modo de cámara, reloj de la simulación y FPS. Classic es una capa de texto compacta. Cámbialo con Hud Style o Tools > Arcade Vehicle Driver > Debug HUD. El layout moderno (Runtime/Debug/Resources/AVDHud) se puede editar en el UI Builder.

Debug HUD

20. Scripts e IA ​

Todos los tipos de runtime están en el namespace ArcadeVehicleDriver (los tipos de la simulación en ArcadeVehicleDriver.Simulation). Los comentarios de los ejemplos están en inglés, como en el código del paquete.

Conducir un coche desde código (IA) ​

Implementa IAVDVehicleController en un componente del vehículo. En cada tick de simulación, el vehículo le pide un tick de controles, por la misma ruta que usa el jugador:

csharp
using ArcadeVehicleDriver;
using ArcadeVehicleDriver.Simulation;
using UnityEngine;

[RequireComponent(typeof(AVDVehicle))]
public class FollowTargetDriver : MonoBehaviour, IAVDVehicleController
{
    public Transform target;
    public float cruiseKmh = 50f;

    AVDVehicle m_Vehicle;

    void OnEnable()
    {
        m_Vehicle = GetComponent<AVDVehicle>();
        m_Vehicle.Controller = this; // take control (the player's input is no longer read)
    }

    public AVDCarControls GetControls(AVDVehicle vehicle)
    {
        var c = AVDCarControls.Neutral;
        if (target == null)
        {
            c.pad = AVDPad.Handbrake;
            return c;
        }

        // steer towards the target with the analog path (-128..127)
        Vector3 local = vehicle.transform.InverseTransformPoint(target.position);
        float angle = Mathf.Atan2(local.x, local.z) * Mathf.Rad2Deg;
        c.useAnalogue = true;
        c.analogSteer = Mathf.RoundToInt(Mathf.Clamp(angle / 30f, -1f, 1f) * 127f);
        if (c.analogSteer != 0)
            c.pad |= c.analogSteer > 0 ? AVDPad.Right : AVDPad.Left;

        // hold a speed
        if (vehicle.ForwardSpeedKmh < cruiseKmh)
            c.pad |= AVDPad.Accel;
        else if (vehicle.ForwardSpeedKmh > cruiseKmh + 10f)
            c.pad |= AVDPad.Brake;
        return c;
    }
}

AVDScriptedDriver reproduce una lista temporizada de entradas (en ticks), útil para pruebas repetibles.

Llamadas habituales ​

csharp
vehicle.Teleport(new Vector3(0f, 1f, 0f), yawDegrees: 90f); // place the car (never move its transform)
vehicle.ResetUpright();                                     // put it back on its wheels
vehicle.SetCruise(true);                                    // cruise control at Tuning > Cruise Speed Kmh

float kmh = vehicle.ForwardSpeedKmh;                        // also SpeedKmh, Velocity, Gear, EngineRpm
vehicle.Damage += 2000;                                     // also MaxDamage, DamageFraction, IsWrecked
vehicle.Repair();

vehicle.StartEngine();                                      // with Use Ignition; also StopEngine, ToggleEngine
vehicle.Honk(0.5f);                                         // or SetHorn(true / false)

vehicle.Transmission = AVDTransmission.Manual;              // usually set by the Vehicle Manager
vehicle.ShiftUp();                                          // also ShiftDown, SelectGear(-1 = R, 0 = N, 1..)

Eventos ​

csharp
void OnEnable()
{
    AVDPhysicsWorld.GetOrCreate().Impact += OnImpact;  // every collision
    vehicle.EngineEvent += (v, e) => Debug.Log($"{v.name}: {e}"); // CrankStarted, Started, CrankFailed, Stopped, Stalled
    vehicle.GearChanged += (v, gear) => Debug.Log($"gear {gear}");
    vehicle.HornChanged += (v, on) => { /* scare pedestrians */ };
}

void OnImpact(AVDImpact hit)
{
    // hit.kind: VehicleHit, SceneryHit, Landing, Smash; hit.speedKmh, hit.point, hit.normal,
    // hit.vehicle / hit.otherVehicle / hit.scenery / hit.collider / hit.surface
    if (hit.kind == AVDImpactKind.VehicleHit && hit.speedKmh > 40f)
        Debug.Log($"{hit.vehicle.name} crashed into {hit.otherVehicle.name} at {hit.speedKmh:0} km/h");
}

AVDPhysicsWorld.Ticked se lanza después de cada tick de simulación (úsalo para la lógica que debe seguir a los ticks). Daño visual: GetComponent<AVDVehicleDamage>().ApplyHit(worldPoint, damage) añade daño en un punto (explosiones, choques guionizados).

21. Menú del editor ​

Todas las herramientas están en Tools > Arcade Vehicle Driver:

ElementoQué hace
Setup ProjectLayers, assets predeterminados, comprobación del Input System. Se puede volver a ejecutar sin problema.
Setup SceneObjeto de sistemas (physics world, efectos de impacto y de vehículo, HUD, vehicle manager) y rig de cámara. Solo añade lo que falta.
Vehicle Setup Wizard...De modelo a vehículo: orientación, ruedas, pivots, definición ajustada, entrada, prefab.
Camera > Setup Camera On Main Camera / Select Camera ProfileSolo el rig de cámara / ir al asset del perfil.
World > Mark Selection As Ground / Scenery (Solid, Barrier, Smashable)Layer, collider y opciones para los objetos seleccionados.
World > Set Surface Of Selection > ...Tipo de superficie mediante un PhysicsMaterial.
Debug HUD > Modern / ClassicEstilo del HUD de las escenas abiertas.
Audio > Generate Placeholder SoundsClips provisionales y los dos sound profiles predeterminados.
Audio > FMOD Integration > Enable / DisableAñade o quita el define AVD_FMOD.
Effects > Rebuild Particle PrefabsRegenera los prefabs predeterminados de humo, fuego y escape.
Update Input Asset (Camera Map)Añade las acciones de cámara a un asset de bindings antiguo.
Samples > Build Playground Scene / Rebuild Sample Car PrefabsRegenera el ejemplo (requiere ProBuilder).
DocumentationAbre este manual en PDF (la versión Markdown si falta el PDF).

Los assets se crean con Assets > Create > Arcade Vehicle Driver (Vehicle Definition, Sound Profile, Effects Profile, Surface Effects, Impact Material, Camera Profile).

22. Inspectores ​

Cada componente y asset del paquete muestra para qué sirve en la parte superior y, después, sus ajustes en secciones plegables. El ? de una sección la explica; Field descriptions (arriba a la derecha) escribe la explicación de cada ajuste debajo de él en todos los inspectores del paquete; si no, pasa el ratón sobre un ajuste. Los ajustes que solo importan en un modo aparecen solo en ese modo. Se recuerdan las secciones abiertas y cerradas.

Field descriptions

23. Rendimiento y determinismo ​

  • La simulación es C# puro con aritmética de enteros sobre buffers preasignados, sin cuerpos de física de Unity para los coches.
  • AVD Physics World > Max Ticks Per Frame limita los ticks de recuperación tras un parón de fotograma.
  • Con el mismo inicio y los mismos controles en cada tick, un coche siempre hace lo mismo en cualquier máquina (repeticiones, fantasmas, red en lockstep). La presentación (efectos, audio, cámara, daño visual) nunca retroalimenta la simulación.
  • Use Unity Fixed Update ejecuta los ticks desde FixedUpdate con resultados idénticos (útil junto a otro código de física).

24. Solución de problemas ​

ProblemaSolución
El coche atraviesa el sueloEl suelo no está en el layer AVDGround (o el layer se renombró: revisa AVD Physics World > World queries). Usa World > Mark Selection As Ground.
El coche atraviesa las paredesLas paredes deben estar en AVDScenery con un collider. Los mesh colliders se convierten en su bounding box; usa BoxColliders para las paredes giradas.
El coche se queda atascado en el borde de una rampa / sube por las paredesLas piezas de suelo no deben tener caras verticales; pon una caja AVDScenery bajo las rampas y plataformas.
El teclado no hace nadaHaz clic en la Game view después de pulsar Play. Comprueba que Active Input Handling incluye el Input System.
Las ruedas giran alrededor del punto equivocadoUsa Centre Wheel Pivots (inspector del vehículo, Wheels).
El coche flota o se hundeEjecuta Fit Physics To Model, o ajusta los puntos de contacto de las ruedas y Wheel Size; comprueba que el modelo mira hacia +Z.
No hay abolladurasAñade AVD Vehicle Damage; las mallas del modelo deben ser legibles (el inspector ofrece arreglarlo).
No hay sonidoAñade AVD Vehicle Audio y asigna un perfil (Generate Placeholder Sounds crea uno). Con Use Ignition, arranca el motor (I).
La escena de ejemplo se ve rosa o rotaEl proyecto debe usar URP; el Playground necesita ProBuilder instalado.

25. Carpetas y assemblies ​

CarpetaAssemblyContenido
Runtime/SimulationArcadeVehicleDriverSimulación independiente del motor: aritmética de punto fijo, datos del vehículo, física, colisiones, paso del mundo.
Runtime/World, Vehicle, Input, Camera, Effects, Damage, Audio, Debug, CommonArcadeVehicleDriverLado Unity: physics world, vehículos, entrada, cámara, efectos, daño visual, audio, HUD.
Runtime/Integrations/FMODArcadeVehicleDriver.FMODSalida FMOD (solo se compila con el define AVD_FMOD).
EditorArcadeVehicleDriver.EditorMenú, herramientas de configuración, wizard, inspectores, herramientas de la Scene view.
Defaults-Bindings, camera profile, efectos, sonidos y materiales predeterminados.
Samples/PlaygroundArcadeVehicleDriver.Samples.Editor (solo con ProBuilder)Escena de la ciudad de pruebas, coches de ejemplo y sus generadores.
Documentation-Este manual, la referencia de ajustes y las imágenes.

Consulta CHANGELOG.md para ver el historial de versiones.

26. Notas sobre el contenido ​

  • Los modelos de los coches de ejemplo (Samples/Playground/Models) y la textura de la capa de daño (Defaults/Damage) se crearon con herramientas de IA generativa. Los sonidos provisionales los sintetiza el paquete (Generate Placeholder Sounds). Sustitúyelos por tu propio arte y grabaciones en un juego que vayas a publicar.
  • El manejo está basado en las mecánicas de juego de Driver 2. No se incluye ningún asset de ese juego.