Determine o que o usuário precisa e guie-o pela configuração de navegação. Veja navigation-system.md para detalhes expandidos dos componentes, notas de API, receitas de código e solução de problemas.
Passando C# para eval
eval compila um bloco de instruções, não um arquivo. Duas consequências, ambas causando erro de compilação em vez de aviso:
- Sem diretivas
using. O compilador lêusing UnityEngine;como uma instrução de descarte de recurso e a rejeita (CS0210). - Tipos devem ser totalmente qualificados.
AssetDatabaseouVolumesimples não resolvem (CS0246/CS0103), eObjectsimples é ambíguo comobject(CS0104).
Quando um trecho abaixo é escrito como um arquivo — com usings, para legibilidade, ou porque deve ser salvo no projeto — qualifique os tipos antes de passá-lo para eval.
Lógica de Roteamento
| Usuário Diz | Interpretação |
|---|---|
| "adicione navegação" / "configure nav" | Configuração completa: NavMeshSurface + bake + NavMeshAgent |
| "faça este personagem navegar" | Adicionar NavMeshAgent, garantir que NavMesh exista |
| "adicione pathfinding" | NavMeshAgent + script de movimento |
| "agente não se move" / "caminho não encontrado" | Solução de problemas — veja Árvore de Decisão de Solução de Problemas na referência |
| "evitar obstáculos" | NavMeshObstacle com carving ou avoidance |
| "conectar duas áreas" / "pular através" | NavMeshLink entre áreas |
| "patrulhar entre pontos" | NavMeshAgent + script de patrulha |
| "clique para mover" | NavMeshAgent + script de clique-para-mover com raycast |
| "animar o personagem enquanto navega" | Acoplar Animator com NavMeshAgent |
| "diferentes tamanhos de agente" | Configurar tipos de agente na janela Navigation |
| "áreas e custos" / "restringir áreas" | Tipos de área NavMesh, modificadores e máscaras de área do agente |
Fluxo de Trabalho
0. Verificação de Instalação do Pacote
Antes de qualquer outra ação, verifique se com.unity.ai.navigation está instalado. Se estiver faltando,
adicioná-lo em Packages/manifest.json em dependencies — a Unity o resolve quando o Editor recupera o foco, e isso não requer conexão com o Editor:
"com.unity.ai.navigation": "<versão 2.x atual>"
Não invente a string de versão. Leia a atual do registro Unity —
https://packages.unity.com/com.unity.ai.navigation lista todas as versões publicadas — ou copie a versão que um
pacote Unity adjacente neste manifesto já usa. Uma versão que não existe faz a Unity falhar na resolução silenciosamente, então um palpite errado parece que nada aconteceu.
Prossiga apenas quando confirmado que está instalado. Se você tiver um Editor ao vivo para executar C#, veja
navigation-system.md para o equivalente Client.Add.
1. Pré-Voo: Avaliar a Configuração de Navegação Atual
Antes de fazer alterações, inspecione o que já existe:
- Encontre os componentes de navegação existentes. Com um Editor conectado, consulte a cena ativa em busca de
NavMeshSurface,NavMeshAgent,NavMeshObstacle,NavMeshLinkeNavMeshModifier— veja o skillunity-clipara conduzir um Editor em execução. Sem um, pesquise na cena e nos arquivos de prefab por esses nomes de componentes. - Verifique os tipos de agente configurados via Window > AI > Navigation > guia Agents.
- Resuma TODOS os componentes de navegação detectados antes de propor alterações.
2. Coletar Informações Faltantes
Antes de criar componentes, garanta que o usuário especificou: superfícies caminháveis, tipo/tamanho do agente, comportamento do agente, obstáculos, links e requisitos de área/custo. Pergunte se algo não estiver claro. Veja a Lista de Verificação de Coleta de Informações na referência para detalhes completos.
3. Planejamento e Execução
Siga esta ordem geral. Veja o Guia de Configuração de Componentes na referência para instruções detalhadas passo a passo por componente:
- NavMesh Surface — crie a malha caminhável (bake)
- NavMesh Agent — adicione personagens de pathfinding
- NavMesh Obstacle — adicione obstáculos dinâmicos
- NavMesh Link — conecte áreas NavMesh desconectadas
- NavMesh Modifier / Modifier Volume — ajuste fino de tipos de área
- Scripts — movimento, patrulha, clique-para-mover, acoplamento de animação (veja Receitas Comuns na referência)
4. Validação
Após a configuração, confirme:
- NavMesh foi baked e está visível (overlay azul)
- Tipo de agente do NavMeshSurface corresponde ao tipo de agente do NavMeshAgent
- Agentes têm um caminho válido para seu destino
- Obstáculos fazem carving ou obstruem corretamente
- Links têm ambas as extremidades conectadas e Activated está habilitado
- As máscaras de área permitem o movimento pretendido
- Nenhum componente conflitante (veja Guia de Mistura de Componentes na referência)
- Se usar Rigidbody com NavMeshAgent, Is Kinematic está habilitado
5. Confirmação Final
Resuma o que foi criado ou alterado:
- NavMesh Surfaces: qual GameObject, tipo de agente, modo de geometria, status do bake
- NavMesh Agent(s): qual GameObject, velocidade, distância de parada, máscara de área
- NavMesh Obstacle(s): qual GameObject, forma, carve ligado/desligado
- NavMesh Link(s): início/fim, bidirecional, tipo de área
- Scripts: quais scripts anexados a quais GameObjects
- Quaisquer etapas manuais necessárias (ajustar waypoints, re-bake após alterações na cena, etc.)