Skip to content

Arcade Vehicle Driver - Manual do usuário ​

Arcade Vehicle Driver

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 ​

  1. Recursos
  2. Requisitos e instalação
  3. Início rápido
  4. O exemplo Playground
  5. Como funciona
  6. Configurando um veículo
  7. Ajustando a dirigibilidade
  8. Motor, ignição e buzina
  9. Câmbio e transmissões
  10. Tração e aderência
  11. Arrancadas e burnouts
  12. Dano
  13. O mundo: chão, superfícies e cenário
  14. Efeitos do veículo
  15. Efeitos de impacto
  16. Áudio do veículo
  17. Câmera
  18. Entrada, controles e o Vehicle Manager
  19. Debug HUD
  20. Scripts e IA
  21. Menu do editor
  22. Inspectors
  23. Desempenho e determinismo
  24. Solução de problemas
  25. Pastas e assemblies
  26. 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 ​

ItemRequisito
UnityUnity 6 (desenvolvido e testado no 6000.6)
Render pipelineUniversal Render Pipeline (os materiais de efeito e do exemplo usam shaders URP)
PacotesInput System (1.x) - obrigatório. ProBuilder (5.x ou mais recente) - só para a cena de exemplo Playground e seu gerador
OpcionalFMOD for Unity 2.02+ para a saída de áudio FMOD
  1. Importe o pacote. Tudo fica em uma pasta (Assets/ArcadeVehicleDriver por padrão; você pode movê-la).
  2. 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).
  3. 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 em Defaults/ (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:

  1. Tools > Arcade Vehicle Driver > Setup Project (uma vez por projeto).

  2. 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).

  3. 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.

    Vehicle Setup Wizard

  4. 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.

  5. 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.

Playground

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:

ParteO que é
AVD Physics WorldUm por cena (criado automaticamente se não existir). Roda os ticks, consulta chão e cenário, dispara eventos de colisão.
AVD VehicleNa raiz do veículo. O transform é a origem da física (centro de rotação); o modelo é um filho virado para +Z.
Vehicle DefinitionAsset compartilhado por todos os carros de um modelo: geometria, dirigibilidade, ajuste, câmbio, tração, dano, efeitos.
AVD Player Input / qualquer controladorEntrega ao carro um tick de controles. A IA usa o mesmo ponto de entrada.
AVD Vehicle ManagerQuais carros o jogador dirige (Tab alterna) e a transmissão do jogador.
AVD Chase CameraO rig de câmera, guiado por um asset Camera Profile.
Effects, Audio, Damage, HUDSó 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 ​

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 ​

Ajudas da Scene view

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 ​

Vehicle Definition

A Vehicle Definition guarda como um tipo de veículo se comporta. Suas seções:

SeçãoConteúdo
Overview and previewResumo das dimensões em metros, Apply Preset (body type), pré-visualização na Scene.
Geometry, engine and gripPontos de contato e tamanho das rodas, Power Ratio, Traction, caixa de colisão, centro de gravidade, pontos da carroceria, inércia, massa.
HandlingAderência geral (Friction Scale Ratio), frenagem agressiva, auto brake da direção, tração, limite de tração.
TuningEscala de aceleração, velocidade máxima e de cruzeiro, freios, ré, aderência do freio de mão, suspensão, direção, gravidade.
GearboxFaixa de RPM, limitador de giro, número de marchas, pontos de troca.
Launch and burnoutBurnouts de brake stand e arrancadas opcionais.
DamageLimite de destruição e multiplicadores de dano.
EffectsImpact 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:

ObjetivoAlteração
Aceleração e velocidade máxima maioresPower Ratio para cima (4096 = carro normal, 4700 = muscle car) ou Acceleration Scale para cima
Velocidade máxima rígidaMax Speed Kmh (0 = só o arrasto limita, cerca de 130 km/h para um carro normal)
Mais aderência, menos derrapagemTraction para cima (4096-4400), ou Friction Scale Ratio para cima (32 = normal, 45-68 = caminhões / 4x4)
Carro de driftTraction um pouco para baixo, Handbrake Front Grip para cima, Auto Brake On ligado
Carro estável, que subesterçaAuto Brake On desligado, Twist Rate Y para baixo
Caminhão ou van pesadoPower Ratio 3000, Mass para cima, Twist Rate Y / Z para baixo (180 / 900), Gravity mais negativo
Suspensão mais duraSpring Rate para cima, Spring Damping para cima
Frenagem mais curtaBrake Scale para cima, Aggressive Braking ligado
Direção mais rápidaSteer Rate para cima (teclado / d-pad), Max Steer para cima (ângulo)
Carro mais resistenteMax 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):

ModoComo dirige
AutomaticClássico. A marcha acompanha a velocidade; segurar o freio com o carro parado dá ré.
ManualGear 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 ClutchComo 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.

Zonas de dano

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.

Dano visual

  • 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:

Efeitos

  • 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.

Sound profile

  • 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:

TipoUso
ChaseA câmera que segue: enquadramento pelo tamanho do carro (Classic Framing), atraso, balanço nas curvas, FOV e distância por velocidade.
MountedVisões de para-choque, capô ou cockpit, com posições por veículo (AVD Vehicle > Camera positions).
TripodUma 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.

Câmera bumper

18. Entrada, controles e o Vehicle Manager ​

AçãoTecladoGamepad
AcelerarW / Seta para cimaCross (A), RT (analógico)
Frear / réS / Seta para baixoSquare (X), LT
EsterçarA D / setasanalógico esquerdo, d-pad
Esterçamento rápidoShift esquerdoL1
Freio de mãoEspaçoTriangle (Y), R1
BurnoutECircle (B)
Piloto automáticoCd-pad para cima
BuzinaHL3
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 carroRSelect
Olhar para trásQR3
Próximo carroTabd-pad para baixo
Próximo modo de câmeraVStart
Girar a câmerabotão direito do mouse + mouseanalógico direito
HUD / ajuda / pausa / avançar um tickF1 / 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.

Vehicle Manager

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.

Debug HUD

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:

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 reproduz uma lista temporizada de entradas (em ticks), útil para testes repetíveis.

Chamadas comuns ​

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 é 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:

ItemO que faz
Setup ProjectLayers, assets padrão, verificação do Input System. Pode ser rodado de novo sem problema.
Setup SceneObjeto 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 ProfileSó 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 / ClassicEstilo do HUD das cenas abertas.
Audio > Generate Placeholder SoundsClips provisórios e os dois sound profiles padrão.
Audio > FMOD Integration > Enable / DisableAdiciona ou remove o define AVD_FMOD.
Effects > Rebuild Particle PrefabsRegenera 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 PrefabsRegenera o exemplo (requer ProBuilder).
DocumentationAbre 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.

Field descriptions

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 ​

ProblemaSolução
O carro atravessa o chãoO 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 paredesAs 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 paredesAs peças de chão não podem ter faces verticais; coloque uma caixa AVDScenery sob rampas e plataformas.
O teclado não faz nadaClique na Game view depois de apertar Play. Confira se Active Input Handling inclui o Input System.
As rodas giram em torno do ponto erradoUse Centre Wheel Pivots (inspector do veículo, Wheels).
O carro flutua ou afundaRode Fit Physics To Model, ou ajuste os pontos de contato das rodas e Wheel Size; confira se o modelo aponta para +Z.
Sem amassadosAdicione AVD Vehicle Damage; as malhas do modelo precisam ser legíveis (o inspector oferece a correção).
Sem somAdicione 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 quebradaO projeto precisa usar URP; o Playground precisa do ProBuilder instalado.

25. Pastas e assemblies ​

PastaAssemblyConteúdo
Runtime/SimulationArcadeVehicleDriverSimulaçã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, CommonArcadeVehicleDriverLado Unity: physics world, veículos, entrada, câmera, efeitos, dano visual, áudio, HUD.
Runtime/Integrations/FMODArcadeVehicleDriver.FMODSaída FMOD (compilada só com o define AVD_FMOD).
EditorArcadeVehicleDriver.EditorMenu, ferramentas de configuração, wizard, inspectors, ferramentas da Scene view.
Defaults-Bindings, camera profile, efeitos, sons e materiais padrão.
Samples/PlaygroundArcadeVehicleDriver.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.