Déterminez ce dont l'utilisateur a besoin et guidez-le à travers la configuration de la navigation. Voir navigation-system.md pour des détails étendus sur les composants, des notes d'API, des recettes de code et du dépannage.
Passage de C# à eval
eval compile un bloc d'instructions, pas un fichier. Deux conséquences, qui provoquent toutes deux une erreur de compilation plutôt qu'un avertissement :
- Pas de directives
using. Le compilateur litusing UnityEngine;comme une instruction de libération de ressources et la rejette (CS0210). - Les types doivent être complets. Un simple
AssetDatabaseouVolumen'est pas résolu (CS0246/CS0103), et un simpleObjectest ambigu avecobject(CS0104).
Lorsqu'un extrait ci-dessous est écrit comme un fichier — avec des using, pour la lisibilité, ou parce qu'il est destiné à être enregistré dans le projet — qualifiez les types avant de le passer à eval.
Logique de routage
| L'utilisateur dit | Interprétation |
|---|---|
| "ajouter navigation" / "configurer nav" | Configuration complète : NavMeshSurface + cuisson + NavMeshAgent |
| "faire naviguer ce personnage" | Ajouter NavMeshAgent, s'assurer que le NavMesh existe |
| "ajouter pathfinding" | NavMeshAgent + script de déplacement |
| "l'agent ne bouge pas" / "chemin non trouvé" | Dépannage — voir l'arbre de décision de dépannage dans la référence |
| "éviter les obstacles" | NavMeshObstacle avec carving ou évitement |
| "connecter deux zones" / "sauter par-dessus" | NavMeshLink entre les zones |
| "patrouiller entre des points" | NavMeshAgent + script de patrouille |
| "clic pour se déplacer" | NavMeshAgent + script de déplacement par raycast au clic |
| "animer le personnage pendant la navigation" | Coupler Animator avec NavMeshAgent |
| "différentes tailles d'agents" | Configurer les types d'agents dans la fenêtre Navigation |
| "zones et coûts" / "restreindre les zones" | Types de zone NavMesh, modificateurs et masques de zone des agents |
Flux de travail
0. Vérification de l'installation du package
Avant toute autre chose, vérifiez que com.unity.ai.navigation est installé. S'il manque, ajoutez-le à Packages/manifest.json sous dependencies — Unity le résout lorsque l'éditeur retrouve le focus, et cela ne nécessite pas de connexion à l'éditeur :
"com.unity.ai.navigation": "<version 2.x actuelle>"
N'inventez pas la chaîne de version. Lisez la version actuelle à partir du registre Unity — https://packages.unity.com/com.unity.ai.navigation liste chaque version publiée — ou copiez la version qu'un package Unity adjacent dans ce manifeste utilise déjà. Une version qui n'existe pas fait échouer la résolution par Unity silencieusement, donc une mauvaise estimation donne l'impression que rien ne s'est passé.
Procédez uniquement une fois l'installation confirmée. Si vous avez un éditeur en direct pour exécuter du C#, voir navigation-system.md pour l'équivalent Client.Add.
1. Pré-vol : Évaluer la configuration de navigation actuelle
Avant de faire des modifications, inspectez ce qui existe déjà :
- Trouvez les composants de navigation existants. Avec un éditeur connecté, interrogez la scène en direct pour
NavMeshSurface,NavMeshAgent,NavMeshObstacle,NavMeshLinketNavMeshModifier— voir le skillunity-clipour piloter un éditeur en cours d'exécution. Sans cela, recherchez dans la scène et les fichiers de prefab les noms de ces composants. - Vérifiez les types d'agents configurés via Window > AI > Navigation > onglet Agents.
- RÉSUMEZ tous les composants de navigation détectés avant de proposer des modifications.
2. Recueillir les informations manquantes
Avant de créer des composants, assurez-vous que l'utilisateur a spécifié : surfaces praticables, type/taille d'agent, comportement de l'agent, obstacles, liens et exigences de zone/coût. Demandez si quelque chose n'est pas clair. Voir la liste de contrôle de collecte d'informations dans la référence pour les détails complets.
3. Planification et exécution
Suivez cet ordre général. Voir le Guide de configuration des composants dans la référence pour des instructions détaillées étape par étape par composant :
- NavMesh Surface — créer le maillage praticable (le cuire)
- NavMesh Agent — ajouter des personnages de pathfinding
- NavMesh Obstacle — ajouter des obstacles dynamiques
- NavMesh Link — connecter les zones NavMesh déconnectées
- NavMesh Modifier / Modifier Volume — affiner les types de zone
- Scripts — déplacement, patrouille, clic pour se déplacer, couplage d'animation (voir les recettes courantes dans la référence)
4. Validation
Après la configuration, confirmez :
- Le NavMesh est cuit et visible (superposition bleue)
- Le type d'agent NavMeshSurface correspond au type d'agent NavMeshAgent
- Les agents ont un chemin valide vers leur destination
- Les obstacles carvent ou obstruent correctement
- Les liens ont les deux extrémités connectées et Activé est activé
- Les masques de zone permettent le mouvement prévu
- Aucun composant conflictuel (voir le Guide de mélange des composants dans la référence)
- Si Rigidbody est utilisé avec NavMeshAgent, Is Kinematic est activé
5. Confirmation finale
Résumez ce qui a été créé ou modifié :
- NavMesh Surfaces : quel GameObject, type d'agent, mode de géométrie, état de cuisson
- NavMesh Agent(s) : quel GameObject, vitesse, distance d'arrêt, masque de zone
- NavMesh Obstacle(s) : quel GameObject, forme, carve activé/désactivé
- NavMesh Link(s) : début/fin, bidirectionnel, type de zone
- Scripts : quels scripts attachés à quels GameObjects
- Toutes les étapes manuelles requises (ajuster les waypoints, recuire après des changements de scène, etc.)