[Résolu] Deux NavMeshAgent ne détectent pas leur collision

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
Monsieur_Jack
Messages : 12
Inscription : 16 Fév 2017 23:20

[Résolu] Deux NavMeshAgent ne détectent pas leur collision

Message par Monsieur_Jack » 13 Mars 2017 00:56

Bonjour à tous,

Je viens de rencontrer un problème un peu gênant qui est que lorsque 2 objets équipés d'un navmeshagent et d'un rigidbody ont une collision celle ci n'est pas détectée avec "OnCollisionEnter" alors que lorsqu'il y a une collision entre un navmeshagent et un simple objet avec rigidbody ça marche...

Si quelqu'un a une idée de solution, je suis preneur :-D

Ptitit screenshot :

Image

Avatar de l’utilisateur
Max
Messages : 8771
Inscription : 30 Juil 2011 13:57
Contact :

Re: 2 NavMeshAgent ne détectent pas leur collision

Message par Max » 13 Mars 2017 09:24

Bonjour,

A priori en théorie il n'y a pas de raison pour que cela ne fonctionne pas.
Par contre, dans ton cas, tes cubes, au niveau de leur rigidbody, semblent être en 'isKinematic', donc....
Image
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

Monsieur_Jack
Messages : 12
Inscription : 16 Fév 2017 23:20

Re: 2 NavMeshAgent ne détectent pas leur collision

Message par Monsieur_Jack » 13 Mars 2017 19:26

Max a écrit :Bonjour,

A priori en théorie il n'y a pas de raison pour que cela ne fonctionne pas.
Par contre, dans ton cas, tes cubes, au niveau de leur rigidbody, semblent être en 'isKinematic', donc....
Oui mais le isKinematic est obligatoire si couplé à un navmeshagent

"
If you want a NavMesh Agent to push around physics objects or use physics triggers:
Add a Collider component (if not present)
Add Rigidbody component
Turn on kinematic (Is Kinematic) - this is important!
Kinematic means that the rigid body is controlled by something else than the physics simulation
"

Au pire, je vais lui créer une box collider en enfant mais bon... Pas super propre tout ça.

Avatar de l’utilisateur
Max
Messages : 8771
Inscription : 30 Juil 2011 13:57
Contact :

Re: 2 NavMeshAgent ne détectent pas leur collision

Message par Max » 13 Mars 2017 19:32

Ouaip, puisque l'on est dans la doc, pour ce qui est de OnCollisionEnter(), il est dit: Notes: Collision events are only sent if one of the colliders also has a non-kinematic rigidbody attached..
Et la c'est clair, cela ne fonctionnera pas si on ne respecte pas cette règle.

Par contre dans ton cas, avant toute chose, j'essaierais quand même en décochant le IsKinematic voir ce que cela donne.
Sinon, pourquoi ne pas passer par une détection par trigger, la gestion des mouvements étant faite par le biais du système de NavMeshAgent, tu ne devrait pas avoir à te soucier des interférence physique entre les éléments.
Image
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

Monsieur_Jack
Messages : 12
Inscription : 16 Fév 2017 23:20

Re: 2 NavMeshAgent ne détectent pas leur collision

Message par Monsieur_Jack » 14 Mars 2017 19:53

En fait, je souhaite que les cubes avec un navmesh se transmettent des "infos" mais seulement sur collision.
Sans le IsKinematic, ça fait juste n'importe quoi :lol:

Finalement, j'ai mis une zone de collision sur un empty en enfant du cube...

Répondre

Revenir vers « Unity le logiciel »