Un GameObject avec plusieurs trigger2D ?

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
Avatar de l’utilisateur
ludoxe
Messages : 26
Inscription : 23 Mars 2014 19:17

Un GameObject avec plusieurs trigger2D ?

Message par ludoxe » 30 Jan 2021 13:21

Bonjour,

J'ai un monstre auquel je souhaite rajouter plusieurs triggers pour repérer un joueur, un qui fera office de détection visuelle, et un autre de détection sonore.

Il me semble qu'il est préférable de répartir les triggers sur des childs gameobjects. Mais niveau script quelle serait la meilleure façon de procéder ensuite ?

Aussi, en développant en 2D, je voudrais savoir si ce ne serait pas mieux de mettre tous les triggers sur le même gameObject, puis d'utiliser Collider2D.IsTouching pour distinguer la distinction visuelle de la distinction sonore ?

Merci à vous !

Avatar de l’utilisateur
jmhoubre
Messages : 856
Inscription : 05 Oct 2019 22:05

Re: Un GameObject avec plusieurs trigger2D ?

Message par jmhoubre » 30 Jan 2021 14:13

Bonjour,

du point de vue de la maintenabilité et de la clarté, plusieurs scripts bien délimités sont généralement préférables à un gros script qui fait tout.
Par ailleurs, le gain de performance avec une seule méthode OnTriggerEnter (par exemple) par rapport à plusieurs ne doit pas être phénoménal, sauf s'il y a plusieurs centaines ou milliers de monstres.

J'aurais donc tendance à préférer plusieurs scripts.

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

Re: Un GameObject avec plusieurs trigger2D ?

Message par Max » 30 Jan 2021 14:30

Bonjour,

j'aurais tendance à dire pourquoi multiplier les GO ?
Dans les cas simples, deux Collider2D en Trigger sur ton GO devrait faire l'affaire. Et pour déterminer lequel est touché dans les fonctions de détection, comme tu le soulignes, tu peux faire appel à Collider2D.isTouching().
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

Répondre

Revenir vers « Unity le logiciel »