Arcade Vehicle Driver - Manual do usuário

Arcade Vehicle Driver é um kit completo de dirigibilidade arcade de carros para Unity, baseado nas mecânicas de jogo de Driver 2. Ele entrega carros que derrapam, fazem burnout, saltam e batem com o peso e a sensação de um jogo de direção arcade 3D clássico, além dos efeitos, som, câmera e ferramentas de editor para colocar seus próprios carros na pista em minutos.
Este manual explica como o pacote funciona e como usá-lo e configurá-lo. Todas as configurações de todos os componentes estão listadas, com o valor padrão e o que fazem, na Referência de configurações. As mesmas descrições aparecem nos inspectors: passe o mouse sobre uma configuração ou ative Field descriptions no topo de qualquer inspector do pacote.
Os nomes de menus, componentes, seções de inspector e configurações estão em inglês, como aparecem no Unity.
Conteúdo
- Recursos
- Requisitos e instalação
- Início rápido
- O exemplo Playground
- Como funciona
- Configurando um veículo
- Ajustando a dirigibilidade
- Motor, ignição e buzina
- Câmbio e transmissões
- Tração e aderência
- Arrancadas e burnouts
- Dano
- O mundo: chão, superfícies e cenário
- Efeitos do veículo
- Efeitos de impacto
- Áudio do veículo
- Câmera
- Entrada, controles e o Vehicle Manager
- Debug HUD
- Scripts e IA
- Menu do editor
- Inspectors
- Desempenho e determinismo
- Solução de problemas
- Pastas e assemblies
- Notas sobre o conteúdo
1. Recursos
- Simulação de tick fixo. Física determinística em inteiros (ponto fixo) a 30 ticks por segundo por padrão, independente da taxa de quadros; a renderização é interpolada entre ticks, então fica suave em qualquer FPS. Os carros não usam rigid bodies do Unity.
- Dirigibilidade. Suspensão, aderência dos pneus, derrapagens de freio de mão, burnouts, saltos, entrada de curva com o "auto brake" da direção, limitadores de velocidade e de ré, piloto automático, tração traseira / dianteira / integral, limite de tração opcional.
- Motor e câmbio. Ignição opcional com motor de partida e falhas de partida dependentes do dano, buzina, transmissões automática / manual / manual com embreagem, marchas configuráveis, faixa de RPM e limitador de giro, burnouts de brake stand e arrancadas.
- Colisões e dano. Colisões carro com carro (3D) e carro com cenário, seis zonas de dano, limite de destruição, resistência por veículo; dano visual com amassados, materiais danificados, peças destacáveis e vidros que quebram.
- Efeitos. Fumaça e fogo do motor por dano, escapamento, detritos de batida, marcas de pneu, fumaça e poeira por tipo de chão, faíscas e sons de impacto por material.
- Áudio. Motor clássico de dois loops ou motor em camadas com N loops, ignição, chiado de pneu com sensibilidade ajustável, trocas de marcha, solavancos, buzina, vento, motor danificado. AudioSources do Unity ou uma saída FMOD opcional.
- Câmera. Modos chase, bumper, mounted (capô, cockpit) e tripod com transições, órbita, tremor, desvio de obstáculos e posições de câmera por veículo; pré-visualização no modo de edição.
- Ferramentas. Vehicle Setup Wizard, detecção de rodas, Fit Physics To Model, handles na Scene view para o formato da carroceria, palco de pré-visualização da definição, inspectors em seções com ajuda embutida, debug HUD.
- Pronto para IA. Qualquer coisa que implemente uma interface pode dirigir um carro pelo mesmo caminho de código do jogador.
2. Requisitos e instalação
| Item | Requisito |
|---|---|
| Unity | Unity 6 (desenvolvido e testado no 6000.6) |
| Render pipeline | Universal Render Pipeline (os materiais de efeito e do exemplo usam shaders URP) |
| Pacotes | Input System (1.x) - obrigatório. ProBuilder (5.x ou mais recente) - só para a cena de exemplo Playground e seu gerador |
| Opcional | FMOD for Unity 2.02+ para a saída de áudio FMOD |
- Importe o pacote. Tudo fica em uma pasta (
Assets/ArcadeVehicleDriverpor padrão; você pode movê-la). - Se o projeto ainda não usa o Input System, o Unity pergunta se deve ativar o novo backend de entrada: aceite e deixe o editor reiniciar (Project Settings > Player > Active Input Handling = Input System Package ou Both).
- Rode Tools > Arcade Vehicle Driver > Setup Project. Ele cria os três layers que o pacote usa (
AVDGround,AVDScenery,AVDVehicle) e os assets padrão emDefaults/(bindings, camera profile, impact materials, efeitos, sons provisórios). Pode ser rodado de novo sem problema.
3. Início rápido
De uma cena vazia até dirigir o seu próprio carro:
Tools > Arcade Vehicle Driver > Setup Project (uma vez por projeto).
Marque o mundo. Selecione suas ruas / terreno e rode Tools > Arcade Vehicle Driver > World > Mark Selection As Ground. Selecione prédios, muros e postes e rode Mark Selection As Scenery (Solid) (ou Barrier para muros longos e grades, Smashable para objetos que os carros derrubam).
Crie o carro. Abra Tools > Arcade Vehicle Driver > Vehicle Setup Wizard..., arraste o modelo do carro (cada roda precisa ser um objeto separado), defina Model Front Points To e Model Scale, escolha um Body Type, clique em Create Vehicle In Scene, confira o resultado e clique em Save Prefab.

Monte a cena. Tools > Arcade Vehicle Driver > Setup Scene adiciona o objeto de sistemas (physics world, efeitos, HUD, vehicle manager) e o rig de câmera na Main Camera.
Aperte Play e clique na Game view para ela receber o teclado. W / S aceleram e freiam, A / D esterçam, Espaço é o freio de mão, E um burnout. F1 mostra o debug HUD, F2 os controles.
4. O exemplo Playground
Samples/Playground/Scenes/Playground.unity é uma pequena cidade de teste: quarteirões e becos, um parque, um terreno de areia com caixas destrutíveis, uma praça de manobras com rampas, um platô e barreiras, e morros, com vários carros de exemplo. Tab alterna entre os carros dirigíveis, V percorre os modos de câmera. A cena precisa do ProBuilder (a geometria é feita de malhas ProBuilder); Tools > Arcade Vehicle Driver > Samples > Build Playground Scene a reconstrói por código.

5. Como funciona
A simulação roda em ticks fixos (AVD Physics World > Tick Rate, 30 por padrão). Cada tick lê os controles de todos os carros, calcula as forças de suspensão, pneus e carroceria, resolve as colisões e move os carros. Tudo é matemática de inteiros, então uma dada sequência de entradas sempre dá o mesmo resultado. Os transforms que você vê são interpolados entre os dois últimos ticks. Como as constantes de física são por tick, a taxa de ticks é a velocidade do jogo: mantenha 30, a menos que queira tudo mais rápido ou mais lento.
Unidades. Dentro da simulação, 160 unidades = 1 metro (Units Per Meter), proporções usam 4096 = 1,0 e ângulos usam 4096 = 360 graus. Os inspectors mostram metros onde ajuda; a Referência de configurações traz valores típicos.
Padrões clássicos. Todo padrão reproduz a dirigibilidade de referência ("classic"); os recursos opcionais (ignição, câmbio manual, limite de tração, burnouts de brake stand...) começam desligados.
As partes:
| Parte | O que é |
|---|---|
| AVD Physics World | Um por cena (criado automaticamente se não existir). Roda os ticks, consulta chão e cenário, dispara eventos de colisão. |
| AVD Vehicle | Na raiz do veículo. O transform é a origem da física (centro de rotação); o modelo é um filho virado para +Z. |
| Vehicle Definition | Asset compartilhado por todos os carros de um modelo: geometria, dirigibilidade, ajuste, câmbio, tração, dano, efeitos. |
| AVD Player Input / qualquer controlador | Entrega ao carro um tick de controles. A IA usa o mesmo ponto de entrada. |
| AVD Vehicle Manager | Quais carros o jogador dirige (Tab alterna) e a transmissão do jogador. |
| AVD Chase Camera | O rig de câmera, guiado por um asset Camera Profile. |
| Effects, Audio, Damage, HUD | Só apresentação: leem a simulação e nunca a alteram. |
Layers. Chão = colliders em AVDGround (ruas, terreno, rampas). Cenário = colliders em AVDScenery (prédios, muros, postes, objetos). Os veículos ficam em AVDVehicle. Você pode renomeá-los em AVD Physics World > World queries.
Movendo um carro. Nunca mova o transform de um veículo diretamente: chame Teleport(position, yaw) ou ResetUpright().
6. Configurando um veículo
6.1 O modelo
Um veículo é um objeto raiz com AVD Vehicle (e AVD Player Input para o jogador) e o modelo como filhos. Requisitos do modelo:
- Ele aponta para +Z com +Y para cima (o wizard pode girá-lo para você).
- Cada roda é um objeto separado (veículos com mais de quatro rodas andam sobre as quatro externas; as rodas extras são só visuais).
- Para o dano visual, as malhas precisam ser legíveis (o inspector de dano pode ativar Read/Write).
6.2 Vehicle Setup Wizard
O wizard transforma um modelo em um veículo funcionando: orientação, detecção de rodas (pelo nome: wheel, tire, tyre, rim... e pela posição), pivots das rodas centralizados, uma nova definição ajustada ao modelo a partir de um template de body type (Sedan, Coupe, Long Sedan, Muscle, Van, Sports), player input e um prefab. O body type fornece a potência do motor, a aderência, a inércia e o arranjo dos pontos de contato; as dimensões vêm do seu modelo.
6.3 O inspector do AVD Vehicle

- Vehicle: a definição e o tipo de controle (Player = dirigibilidade precisa com travamento das rodas em frenagens fortes, AI = o caminho mais barato para o tráfego, None = não simulado).
- Wheels: os quatro slots na ordem Front Right, Rear Right, Front Left, Rear Left. Detect Wheels os preenche; Centre Wheel Pivots coloca rodas descentralizadas dentro de um pai centralizado para elas girarem certo. Wheel Placement: Model Position mantém cada roda onde o modelo a tem e só a move com a suspensão; Physics Contact Points desenha as rodas nos pontos de contato da definição.
- Engine and horn: ignição opcional (veja a seção 8).
- Steering wheel: opcional; girado junto com as rodas dianteiras (Rotation Range de batente a batente, eixo, pivot).
- Damage: as configurações de dano da definição ou a substituição própria deste carro, e o dano com que ele começa.
- Camera positions: as posições deste carro para os modos de câmera Mounted (cockpit, capô...), associadas pelo nome do modo. Edit mostra handles na Scene view, Align To Scene View copia a câmera da Scene, Preview a mostra.
- Scene view helpers: quais gizmos desenhar e a legenda.
- Fit physics to model: mede as rodas e a carroceria e grava os pontos de contato das rodas, o tamanho das rodas, a caixa de colisão e os pontos de contato da carroceria na definição (Undo restaura tudo).
6.4 Ajudas da Scene view e formato da carroceria

Com o veículo selecionado: branco = origem da física e direção para frente, ciano = caixa de colisão, amarelo = os 12 pontos de contato da carroceria (mantêm o chassi fora do chão e o levantam em degraus), verde = pontos de contato e círculos das rodas (compare com as rodas do modelo), verde-claro = curso da suspensão, laranja / cinza = pontos de efeito do motor e do escapamento. Damage Zones (desligado por padrão) desenha as seis zonas de dano.
Edit Body Shape In Scene (inspector do veículo ou da definição) torna arrastáveis as faces da caixa de colisão e os pontos da carroceria. Mirror Left / Right mantém os dois lados simétricos e Points Follow Box escala os pontos junto com a caixa. As alterações vão para a definição, suportam Undo e valem na hora no modo Play.
Pré-visualização da definição. No inspector da definição, Open Preview In Scene View abre um palco isolado (como o Prefab Mode) com um modelo de pré-visualização, todas as ajudas e os handles, enquanto a definição continua no inspector.
7. Ajustando a dirigibilidade

A Vehicle Definition guarda como um tipo de veículo se comporta. Suas seções:
| Seção | Conteúdo |
|---|---|
| Overview and preview | Resumo das dimensões em metros, Apply Preset (body type), pré-visualização na Scene. |
| Geometry, engine and grip | Pontos de contato e tamanho das rodas, Power Ratio, Traction, caixa de colisão, centro de gravidade, pontos da carroceria, inércia, massa. |
| Handling | Aderência geral (Friction Scale Ratio), frenagem agressiva, auto brake da direção, tração, limite de tração. |
| Tuning | Escala de aceleração, velocidade máxima e de cruzeiro, freios, ré, aderência do freio de mão, suspensão, direção, gravidade. |
| Gearbox | Faixa de RPM, limitador de giro, número de marchas, pontos de troca. |
| Launch and burnout | Burnouts de brake stand e arrancadas opcionais. |
| Damage | Limite de destruição e multiplicadores de dano. |
| Effects | Impact material, perfil de efeitos e pontos de efeito. |
Alterações de ajuste e dirigibilidade valem na hora no modo Play; alterações de geometria precisam do Reload Cosmetics do veículo (menu de contexto) ou de reiniciar o modo Play.
Receitas:
| Objetivo | Alteração |
|---|---|
| Aceleração e velocidade máxima maiores | Power Ratio para cima (4096 = carro normal, 4700 = muscle car) ou Acceleration Scale para cima |
| Velocidade máxima rígida | Max Speed Kmh (0 = só o arrasto limita, cerca de 130 km/h para um carro normal) |
| Mais aderência, menos derrapagem | Traction para cima (4096-4400), ou Friction Scale Ratio para cima (32 = normal, 45-68 = caminhões / 4x4) |
| Carro de drift | Traction um pouco para baixo, Handbrake Front Grip para cima, Auto Brake On ligado |
| Carro estável, que subesterça | Auto Brake On desligado, Twist Rate Y para baixo |
| Caminhão ou van pesado | Power Ratio 3000, Mass para cima, Twist Rate Y / Z para baixo (180 / 900), Gravity mais negativo |
| Suspensão mais dura | Spring Rate para cima, Spring Damping para cima |
| Frenagem mais curta | Brake Scale para cima, Aggressive Braking ligado |
| Direção mais rápida | Steer Rate para cima (teclado / d-pad), Max Steer para cima (ângulo) |
| Carro mais resistente | Max Damage para cima ou Damage Taken para baixo (seção Damage) |
8. Motor, ignição e buzina
AVD Vehicle > Engine and horn. Com Use Ignition desligado (o padrão), o motor está sempre ligado. Com ele ligado:
- O motor pode estar desligado (Start Running desligado = o carro começa desligado). Enquanto desligado, o carro freia e esterça, mas não acelera, não dá ré, não faz burnout nem usa o piloto automático.
- Ligue com a ação Ignition (I), por scripts (
StartEngine(),StopEngine(),ToggleEngine()) ou com Start On Throttle (acelerar gira a chave, útil para IA). - O motor de partida gira por Crank Seconds (um tempo fixo, ou marque Random para um tempo diferente entre Min e Max a cada partida), o motor pega, o giro sobe (Start Flare) e volta à marcha lenta.
- Start Failures: Above Damage (a partir de X% de dano a partida pode levar até N tentativas) ou Damage Levels (uma lista, por exemplo 20% = até 3, 60% = até 5, 90% = até 8 tentativas). Um carro destruído morre (Stall When Wrecked) e só gira o motor de partida (Wrecked Cannot Start) até ser reparado.
- A fumaça do motor e o escapamento param enquanto o motor está desligado; o fogo de um carro destruído continua queimando.
Buzina: Has Horn; a ação Horn (H), SetHorn(bool) para segurá-la ou Honk(seconds) em scripts. O evento HornChanged permite que outros sistemas reajam (pedestres, por exemplo).
9. Câmbio e transmissões
Definition > Gearbox:
- Idle Rpm / Max Rpm: a faixa de RPM do carro. O conta-giros, o som do motor e todas as configurações de RPM a usam. Alterá-la reescala a leitura e o som, não a dirigibilidade.
- Limiter Rpm: o limitador de giro para qualquer transmissão. Igual a Max Rpm = sem limite extra (clássico). Menor: o automático sobe de marcha antes dele e a última marcha chega no máximo até ali; no manual, toda marcha chega no máximo até ali.
- Custom Gear Count (1-8) e Custom Shift Rpm (onde o automático sobe de marcha, um valor por troca).
As marchas clássicas moldam o giro e o som; o empuxo em si não depende da marcha no automático.
AVD Vehicle Manager > Transmission define como o jogador troca de marcha (a IA sempre usa o automático):
| Modo | Como dirige |
|---|---|
| Automatic | Clássico. A marcha acompanha a velocidade; segurar o freio com o carro parado dá ré. |
| Manual | Gear Up (X) / Gear Down (Z) por R, N, 1, 2... O freio só freia (e segura o carro em velocidade de caminhada); a ré é a marcha R (selecionável abaixo de 5 km/h). Cada marcha chega no máximo ao limitador; uma marcha alta demais para a velocidade puxa fraco. |
| Manual With Clutch | Como Manual, mas trocar de marcha exige a embreagem (Clutch, Ctrl esquerdo) pressionada, e o motor fica desconectado enquanto ela está pressionada. |
Em ponto morto, com a embreagem pressionada, com acelerar + frear no manual ou com o freio de mão puxado, o acelerador só aumenta o giro do motor (até o limitador), e o som acompanha.
10. Tração e aderência
Definition > Handling > Drivetrain: Rear Wheel Drive (clássico), Front Wheel Drive ou All Wheel Drive. O empurrão total é o mesmo em todas as configurações (tração nas quatro rodas não adiciona potência); a tração integral o divide entre os eixos (Front Drive Share, 0,4 = 40% na frente) e, com Adaptive Split, o desloca para o eixo com mais aderência: o carregado numa subida ou acelerando, o que está no asfalto quando o outro está na grama, areia ou água.
Traction Limit (desligado = clássico): cada roda tracionada só consegue empurrar tanto quanto o peso sobre ela permite (Traction Grip). Acelerando ou numa subida, o eixo dianteiro alivia, então um carro de tração dianteira patina e puxa menos, a tração traseira ganha aderência e a integral continua puxando. Grama e areia já reduzem a aderência pela metade.
11. Arrancadas e burnouts
- Botão Burnout (E / Círculo): as rodas tracionadas giram e o carro arranca, até ganhar aderência.
- Burnout de brake stand (Definition > Launch and burnout > Brake Stand Burnout, desligado por padrão): acelere contra os freios com o carro parado (manual: primeira marcha + freio de mão; automático: acelerar + frear). O giro sobe da marcha lenta ao longo de Build Up Seconds, as rodas tracionadas ganham rotação e perdem aderência (fumaça, chiado) e os freios seguram o outro eixo. Carros bem acima de Min Power avançam devagar (Creep); os mais fracos (vans) só aceleram o motor, assim como os de tração integral. Soltar os freios com o acelerador pressionado lança o carro com um burnout; solte o acelerador antes para sair com calma.
12. Dano
12.1 Dano na simulação
Todo carro tem seis zonas de dano (dianteira esquerda, dianteira direita, lateral direita, traseira direita, traseira esquerda, lateral esquerda) e um total. As batidas somam dano à zona atingida; o carro fica destruído quando o total chega a Max Damage (22000 por padrão): fumaça preta e fogo, o motor morre (com a ignição) e, com Wrecked Stops Car, ele trava.
Definition > Damage (ou uma substituição por veículo): Max Damage, Damage Taken (0,5 = blindado, 2 = frágil, 0 = indestrutível), multiplicadores Front / Side / Rear Damage e Side Hits By Direction. Start Damage no veículo define o dano com que ele aparece. No modo Play, o inspector do veículo mostra o dano com um slider e Repair.

12.2 Dano visual
Adicione AVD Vehicle Damage ao veículo para mostrar o dano no modelo. Cada recurso pode ser ligado ou desligado; a dirigibilidade nunca é afetada.

- Dents (amassados): Zones (cada zona esmaga sua parte da carroceria), Impact Point (cada batida amassa onde atingiu, na direção do golpe) ou Hybrid. O formato do amassado é gerado, então funciona com qualquer modelo.
- Damaged material: uma camada de arranhões / sujeira desenhada sobre as áreas danificadas.
- Detachable parts: encontradas pelo nome (hood, bumper, door, spoiler, mirror...) ou listadas à mão; elas voam com a física do Unity.
- Glass: os vidros trincam e depois quebram em cacos.
No modo Play, o inspector tem batidas de teste por zona; scripts podem chamar ApplyHit(worldPoint, damage).
13. O mundo: chão, superfícies e cenário
- Chão = colliders em
AVDGround, encontrados com raios para baixo. O chão não pode ter faces verticais: os pontos da carroceria levantam o carro sobre qualquer degrau até Probe Up (2,5 m). Coloque uma caixa de cenário sob rampas e plataformas para as laterais funcionarem como paredes. - Tipos de superfície: Road, Grass (irregular, metade da aderência), Water / Deep Water (arrasto forte), Sand, Alley. O tipo de um collider vem de um componente AVD Surface nele, senão do seu PhysicsMaterial mapeado em AVD Physics World > Surfaces By Physics Material (World > Set Surface Of Selection os atribui), senão Road.
- Cenário = colliders em
AVDScenery, usados como caixas em pé. AVD Scenery Object adiciona opções: Barrier (os carros deslizam ao longo dele), Smashable (os carros passam por ele e o derrubam; tempo para reaparecer, massa, arremesso) e um impact material. - AVD Physics World: taxa de ticks, unidades por metro, umidade da chuva (menos aderência), alcance das sondas de chão e o relógio (o próprio loop de tick fixo ou o FixedUpdate do Unity, com resultados idênticos).
14. Efeitos do veículo
AVD Vehicle Effects (no objeto de sistemas) roda os efeitos de todos os carros, no ritmo dos ticks da simulação:

- Fumaça do motor por dano: branca a partir de dano dianteiro 2000, preta a partir de 3000, fogo quando destruído; esmaece com a velocidade.
- Escapamento: baforadas quando quase parado (pretas quando muito danificado).
- Detritos de batida em batidas contra carros e cenário.
- Pneus: quando um eixo escorrega além do limiar de derrapagem ou as rodas tracionadas patinam, cada roda deixa marcas de pneu e solta fumaça ou poeira.
O lado do veículo é um AVD Vehicle Effects Profile (definição > Effects, senão o padrão do componente). Todo slot de partículas aceita seu próprio prefab de ParticleSystem ou partículas geradas. Os emissores são os Effect Points da definição (motor e escapamentos), automáticos ou arrastados na Scene view.
O lado do chão é um asset AVD Surface Effects por tipo de chão: cor, largura e material da marca, fumaça de derrapagem, detritos, sons dos pneus. Uma roda escolhe sua superfície pela primeira correspondência entre: AVD Surface > Surface Effects no objeto, o render material do chão, a terrain layer mais pintada, o PhysicsMaterial do collider, o tipo de superfície, o padrão.
15. Efeitos de impacto
AVD Impact Effects toca partículas e sons para toda colisão: batidas em carros, batidas no cenário, aterrissagens e objetos destruídos. Cada impacto escolhe um AVD Impact Material (velocidade mínima e de intensidade máxima em km/h, partículas, quantidade, sons aleatórios): o do próprio veículo ou objeto de cenário, um mapeamento por superfície ou PhysicsMaterial, ou o padrão para seu tipo (Sparks, Dust, Dirt e Wood Chips estão incluídos).
16. Áudio do veículo
Adicione AVD Vehicle Audio a um veículo e dê a ele um Vehicle Sound Profile (um por tipo de veículo). *Tools
Arcade Vehicle Driver > Audio > Generate Placeholder Sounds* cria clips provisórios e dois perfis (Classic e Layered); substitua os clips por gravações.

- Motor, Classic: um loop de marcha lenta e um loop de giro, com pitch pelo giro e crossfade pelo acelerador.
- Motor, Layered: qualquer número de loops gravados em RPMs fixos (mais loops opcionais sem acelerador), com crossfade por RPM e carga, como nos jogos de corrida modernos.
- Ignição: loop do motor de partida, partida e parada do motor.
- Pneus: chiado pelo deslizamento com Skid sensitivity (início, máximo, volume inicial; por padrão começa exatamente onde os pneus começam a deixar marcas) e ruído de rolagem pela velocidade, ambos por tipo de chão.
- Outros: trocas de marcha, batidas da suspensão, buzina, vento, motor danificado.
Toda suavização roda por tick de simulação. A saída são AudioSources do Unity (mixer groups e configurações 3D no perfil). FMOD: importe o FMOD for Unity, rode Tools > Arcade Vehicle Driver > Audio > FMOD Integration > Enable, adicione AVD FMOD Vehicle Audio Output ao lado do AVD Vehicle Audio e atribua seus eventos; RPM, carga, velocidade, derrapagem, superfície e mais são enviados como parâmetros. Qualquer componente que implemente IAVDVehicleAudioOutput pode substituir a saída (Wwise, um mixer próprio).
17. Câmera
AVD Chase Camera (na Main Camera) usa um asset Camera Profile, editado dentro do inspector da câmera. Cada modo tem um tipo:
| Tipo | Uso |
|---|---|
| Chase | A câmera que segue: enquadramento pelo tamanho do carro (Classic Framing), atraso, balanço nas curvas, FOV e distância por velocidade. |
| Mounted | Visões de para-choque, capô ou cockpit, com posições por veículo (AVD Vehicle > Camera positions). |
| Tripod | Uma câmera de TV ao lado da pista por onde o carro passa. |
Todo modo pode adicionar órbita manual (botão direito do mouse / analógico direito), desvio de obstáculos e tremor (impactos, aterrissagens, velocidade). V / Start percorre os modos, Q / R3 olha para trás. Com o jogo parado, a Game view pré-visualiza o modo selecionado (Edit Mode Preview simula velocidade e direção). Add Example Modes adiciona um chase dinâmico, um chase distante, uma visão do capô e um tripod.

18. Entrada, controles e o Vehicle Manager
| Ação | Teclado | Gamepad |
|---|---|---|
| Acelerar | W / Seta para cima | Cross (A), RT (analógico) |
| Frear / ré | S / Seta para baixo | Square (X), LT |
| Esterçar | A D / setas | analógico esquerdo, d-pad |
| Esterçamento rápido | Shift esquerdo | L1 |
| Freio de mão | Espaço | Triangle (Y), R1 |
| Burnout | E | Circle (B) |
| Piloto automático | C | d-pad para cima |
| Buzina | H | L3 |
| Ligar / desligar motor (com ignição) | I | (defina no asset) |
| Subir / descer marcha (manual) | X / Z | (defina no asset) |
| Embreagem (manual com embreagem) | Ctrl esquerdo | (defina no asset) |
| Resetar o carro | R | Select |
| Olhar para trás | Q | R3 |
| Próximo carro | Tab | d-pad para baixo |
| Próximo modo de câmera | V | Start |
| Girar a câmera | botão direito do mouse + mouse | analógico direito |
| HUD / ajuda / pausa / avançar um tick | F1 / F2 / P / . |
Os bindings ficam em Defaults/AVDVehicleControls.inputactions (maps Vehicle e Camera); edite-os no editor de Input Actions. Ele também tem as ações GearReverse, GearNeutral e Gear1..Gear8 sem binding, para um câmbio em H ou teclas numéricas. AVD Player Input trabalha com sua própria cópia dos bindings por carro e tem as configurações de deadzone do analógico, acelerador analógico e vibração.
AVD Vehicle Manager (um por cena, adicionado pelo Setup Scene): a lista de veículos dirigíveis, a câmera que segue o ativo, o veículo no início e a Transmission do jogador. Só a entrada do veículo ativo fica habilitada; os outros ficam estacionados com o freio de mão puxado.

19. Debug HUD
AVD Debug HUD (no objeto de sistemas): F1 o mostra ou esconde, F2 a ajuda dos controles, P pausa a simulação e . avança um tick. Modern (UI Toolkit): velocidade, marcha, barra de RPM com faixa vermelha, acelerador / freio / direção, indicadores (freio de mão, burnout, piloto automático, auto brake, buzina, motor), dano total, um carro visto de cima com as seis zonas de dano, os quatro pneus (suspensão, GRIP / SLIDE / SPIN / LOCKED / AIR, tipo de chão), modo de câmera, relógio da simulação e FPS. Classic é uma sobreposição de texto compacta. Troque com Hud Style ou Tools > Arcade Vehicle Driver > Debug HUD. O layout moderno (Runtime/Debug/Resources/AVDHud) pode ser editado no UI Builder.

20. Scripts e IA
Todos os tipos de runtime estão no namespace ArcadeVehicleDriver (os tipos da simulação em ArcadeVehicleDriver.Simulation). Os comentários dos exemplos estão em inglês, como no código do pacote.
Dirigindo um carro por código (IA)
Implemente IAVDVehicleController em um componente do veículo. A cada tick de simulação, o veículo pede a ele um tick de controles, pelo mesmo caminho que o jogador usa:
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 reproduz uma lista temporizada de entradas (em ticks), útil para testes repetíveis.
Chamadas comuns
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
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 é disparado depois de cada tick de simulação (use para lógica que precisa acompanhar os ticks). Dano visual: GetComponent<AVDVehicleDamage>().ApplyHit(worldPoint, damage) soma dano em um ponto (explosões, batidas roteirizadas).
21. Menu do editor
Todas as ferramentas ficam em Tools > Arcade Vehicle Driver:
| Item | O que faz |
|---|---|
| Setup Project | Layers, assets padrão, verificação do Input System. Pode ser rodado de novo sem problema. |
| Setup Scene | Objeto de sistemas (physics world, efeitos de impacto e de veículo, HUD, vehicle manager) e rig de câmera. Só adiciona o que falta. |
| Vehicle Setup Wizard... | De modelo a veículo: orientação, rodas, pivots, definição ajustada, entrada, prefab. |
| Camera > Setup Camera On Main Camera / Select Camera Profile | Só o rig de câmera / vai para o asset do perfil. |
| World > Mark Selection As Ground / Scenery (Solid, Barrier, Smashable) | Layer, collider e opções para os objetos selecionados. |
| World > Set Surface Of Selection > ... | Tipo de superfície por meio de um PhysicsMaterial. |
| Debug HUD > Modern / Classic | Estilo do HUD das cenas abertas. |
| Audio > Generate Placeholder Sounds | Clips provisórios e os dois sound profiles padrão. |
| Audio > FMOD Integration > Enable / Disable | Adiciona ou remove o define AVD_FMOD. |
| Effects > Rebuild Particle Prefabs | Regenera os prefabs padrão de fumaça, fogo e escapamento. |
| Update Input Asset (Camera Map) | Adiciona as ações de câmera a um asset de bindings mais antigo. |
| Samples > Build Playground Scene / Rebuild Sample Car Prefabs | Regenera o exemplo (requer ProBuilder). |
| Documentation | Abre este manual em PDF (a versão Markdown se o PDF não existir). |
Os assets são criados em Assets > Create > Arcade Vehicle Driver (Vehicle Definition, Sound Profile, Effects Profile, Surface Effects, Impact Material, Camera Profile).
22. Inspectors
Todo componente e asset do pacote mostra para que serve no topo e, em seguida, suas configurações em seções recolhíveis. O ? de uma seção a explica; Field descriptions (no canto superior direito) escreve a explicação de cada configuração abaixo dela em todos os inspectors do pacote; fora isso, passe o mouse sobre uma configuração. Configurações que só importam em um modo aparecem só nesse modo. As seções abertas e fechadas são lembradas.

23. Desempenho e determinismo
- A simulação é C# puro com matemática de inteiros sobre buffers pré-alocados, sem corpos de física do Unity para os carros.
- AVD Physics World > Max Ticks Per Frame limita os ticks de recuperação depois de um travamento de quadro.
- Com o mesmo início e os mesmos controles a cada tick, um carro sempre faz a mesma coisa em qualquer máquina (replays, fantasmas, rede em lockstep). A apresentação (efeitos, áudio, câmera, dano visual) nunca alimenta de volta a simulação.
- Use Unity Fixed Update roda os ticks a partir do FixedUpdate com resultados idênticos (útil junto com outro código de física).
24. Solução de problemas
| Problema | Solução |
|---|---|
| O carro atravessa o chão | O chão não está no layer AVDGround (ou o layer foi renomeado: confira AVD Physics World > World queries). Use World > Mark Selection As Ground. |
| O carro atravessa paredes | As paredes precisam estar em AVDScenery com um collider. Mesh colliders viram a sua bounding box; use BoxColliders para paredes giradas. |
| O carro fica preso na borda de uma rampa / sobe paredes | As peças de chão não podem ter faces verticais; coloque uma caixa AVDScenery sob rampas e plataformas. |
| O teclado não faz nada | Clique na Game view depois de apertar Play. Confira se Active Input Handling inclui o Input System. |
| As rodas giram em torno do ponto errado | Use Centre Wheel Pivots (inspector do veículo, Wheels). |
| O carro flutua ou afunda | Rode Fit Physics To Model, ou ajuste os pontos de contato das rodas e Wheel Size; confira se o modelo aponta para +Z. |
| Sem amassados | Adicione AVD Vehicle Damage; as malhas do modelo precisam ser legíveis (o inspector oferece a correção). |
| Sem som | Adicione AVD Vehicle Audio e atribua um perfil (Generate Placeholder Sounds cria um). Com Use Ignition, ligue o motor (I). |
| A cena de exemplo está rosa ou quebrada | O projeto precisa usar URP; o Playground precisa do ProBuilder instalado. |
25. Pastas e assemblies
| Pasta | Assembly | Conteúdo |
|---|---|---|
Runtime/Simulation | ArcadeVehicleDriver | Simulação independente do engine: matemática de ponto fixo, dados do veículo, física, colisões, passo do mundo. |
Runtime/World, Vehicle, Input, Camera, Effects, Damage, Audio, Debug, Common | ArcadeVehicleDriver | Lado Unity: physics world, veículos, entrada, câmera, efeitos, dano visual, áudio, HUD. |
Runtime/Integrations/FMOD | ArcadeVehicleDriver.FMOD | Saída FMOD (compilada só com o define AVD_FMOD). |
Editor | ArcadeVehicleDriver.Editor | Menu, ferramentas de configuração, wizard, inspectors, ferramentas da Scene view. |
Defaults | - | Bindings, camera profile, efeitos, sons e materiais padrão. |
Samples/Playground | ArcadeVehicleDriver.Samples.Editor (só com ProBuilder) | Cena da cidade de teste, carros de exemplo e seus geradores. |
Documentation | - | Este manual, a referência de configurações e as imagens. |
Veja o CHANGELOG.md para o histórico de versões.
26. Notas sobre o conteúdo
- Os modelos dos carros de exemplo (
Samples/Playground/Models) e a textura da camada de dano (Defaults/Damage) foram criados com ferramentas de IA generativa. Os sons provisórios são sintetizados pelo pacote (Generate Placeholder Sounds). Substitua-os por sua própria arte e gravações num jogo que será lançado. - A dirigibilidade é baseada nas mecânicas de jogo de Driver 2. Nenhum asset daquele jogo está incluído.