Bonjour à tous,
Je cherche à reproduire un petit jeu afin de m'exercer sur certains principes: FuturCop L.A.P.D.
Je suis sur l'IA des drones. Le comportement n'est pas trop mal, mais... pas encore top. J'ai fait un principe de déplacement aléatoire simple:
- Je définis un point aléatoirement dans un rayon max par rapport à un transform: mon DroneCenter.
- Si mon drone dépasse ce rayon, je génère une nouvelle destination.
- Si mon drone détecte un ennemie la destination est cette ennemie avec un offset pour ne pas aller dans le sol. Le rayon max s'agrandit pour les drones qui ont une target.
J'ai voulu faire un test de détection d'obstacles, mais je ne trouve pas très concluant.
Pour ça, je fais avec un RayCast et une distance max. Si il détecte un obstacle, il génère une nouvelle destination.
Comme le dernier point ne me plait pas trop j'ai voulu essayé par curiosité ce principe avec un NavMesh, mais je n'ai pas trouvé comment utiliser le NavMesh pour avoir le système de PathFinding en gérant comme je veux le déplacement (surtout pour la position en Y). Est ce que quelqu'un à des pistes pour modifier le NavMeshAgent ?
Sinon est ce que quelqu'un à de meilleures idées pour la détection des obstacles
EDIT: Est ce que vous avez déjà essayer la gestion de "drone" avec la programmation type ECS ? Qu'est ce que ça vaut ?
Drone IA
Re: Drone IA
Bonjour,
Maintenant, plusieurs solutions. Soit tu es curieux et ton objectif est d'apprendre, y compris dans le domaine des nouvelles features proposés par Unity, alors dans ce cas n'hésite pas à tester. Soit tu sens que ton projet est assez lourd, et malgré toute la panoplie d'opti à ta disposition tu vois bien qu'Unity va chauffer sec, alors là aussi n'hésite pas (emploi du DOTS dans son ensemble). Soit ton objectif principal est d'arriver au bout de ton projet, qui n'est pas gourmant plus que cela en ressource (et qui est déjà avancé), alors je dirais dans ce cas: concentre toi sur l'essentiel
Concernant les NavMeshAgents, il peut y avoir plusieurs solutions. Une d'entre elle consisterait à considérer l'agent comme un ghost avec en enfant ton drone, dont tu vas gérer la partie vertical. Autre solution, tu récupère le path et tu passes par les corners pour faire ton propre système de navigation basé sur les point calculés par le NavMeshAgent.QDRemix a écrit : ↑13 Juin 2019 09:51Comme le dernier point ne me plait pas trop j'ai voulu essayé par curiosité ce principe avec un NavMesh, mais je n'ai pas trouvé comment utiliser le NavMesh pour avoir le système de PathFinding en gérant comme je veux le déplacement (surtout pour la position en Y). Est ce que quelqu'un à des pistes pour modifier le NavMeshAgent ?
C'est une approche différentes, destiné au départ à améliorer les perf, et qui nécessitera de reprendre l'ensemble de ton projet (niveau code). Après c'est aussi encore en preview. Mais il n'a pas de soucis, c'est compatible avec tout type de projet.
Maintenant, plusieurs solutions. Soit tu es curieux et ton objectif est d'apprendre, y compris dans le domaine des nouvelles features proposés par Unity, alors dans ce cas n'hésite pas à tester. Soit tu sens que ton projet est assez lourd, et malgré toute la panoplie d'opti à ta disposition tu vois bien qu'Unity va chauffer sec, alors là aussi n'hésite pas (emploi du DOTS dans son ensemble). Soit ton objectif principal est d'arriver au bout de ton projet, qui n'est pas gourmant plus que cela en ressource (et qui est déjà avancé), alors je dirais dans ce cas: concentre toi sur l'essentiel
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ
Re: Drone IA
Merci de tes réponses Max.
Ce sont deux solutions intéressante. Je vais essayer les deux pour voir!
Le but est d'apprendre et d'essayer de nouvelles choses. Je peux contrôler mon perso, je gère les drones ainsi que certaines interactions, les tourelles par exemple, mais ça reste un code très simple qui ne demandera pas de grande modification. Le plus dure sera de le faire une fois pour comprendre le fonctionnement sur des objets complexes, mais le reste devrait suivre facilement.
Mis à part le NavMesh, comment est ce que je pourrais gérer la détection d'obstacle avec de l'anticipation ?
Ce sont deux solutions intéressante. Je vais essayer les deux pour voir!
Le but est d'apprendre et d'essayer de nouvelles choses. Je peux contrôler mon perso, je gère les drones ainsi que certaines interactions, les tourelles par exemple, mais ça reste un code très simple qui ne demandera pas de grande modification. Le plus dure sera de le faire une fois pour comprendre le fonctionnement sur des objets complexes, mais le reste devrait suivre facilement.
Mis à part le NavMesh, comment est ce que je pourrais gérer la détection d'obstacle avec de l'anticipation ?
Re: Drone IA
tu peux faire une recherche avec "unity raycast obstacle avoidance", il y a pas mal de résultats intéressant, y compris en vidéo.
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ
Re: Drone IA
Super merci beaucoup.
Je mettrais un résultat dès que possible
Je mettrais un résultat dès que possible