Contenu du cours
Unity pour Débutants
Unity pour Débutants
OnCollisionEnter et OnTriggerEnter
OnCollisionEnter2D
Utilisation : Cette méthode est appelée lorsqu'un collider 2D attaché au GameObject
auquel ce script est attaché, entre en collision avec un autre collider dans la scène et qu'au moins un des colliders a un Rigidbody2D
attaché.
Déclencheur : Cette méthode est principalement utilisée pour gérer les collisions physiques, où les objets se "heurtent" réellement.
Scénario d'exemple : Imaginez que vous avez un jeu avec un personnage qui saute et atterrit sur des plateformes. Lorsque le personnage atterrit sur une plateforme, vous pouvez vouloir jouer un effet sonore d'atterrissage, changer l'animation du personnage ou déclencher une autre action. Vous utiliseriez OnCollisionEnter2D
pour détecter lorsque le collider du personnage entre en collision avec le collider de la plateforme.
OnTriggerEnter2D
Utilisation : Cette méthode est appelée lorsqu'un collider 2D attaché au GameObject
auquel ce script est attaché, chevauche un autre collider dans la scène et qu'au moins un des colliders a la propriété "Is Trigger" activée.
Déclencheur : Contrairement à OnCollisionEnter2D
, cette méthode ne concerne pas les collisions physiques, mais plutôt la détection lorsque qu'un objet entre dans l'espace d'un autre sans nécessairement arrêter leur mouvement. Pensez-y comme traverser une porte sans la pousser physiquement.
Scénario d'exemple : Disons que vous avez un jeu où le joueur collecte des pièces. Lorsque le personnage du joueur passe sur une pièce, vous voulez augmenter le score du joueur et faire disparaître la pièce. Vous utiliseriez OnTriggerEnter2D
pour détecter lorsque le collider du joueur chevauche le collider de la pièce.
Qu'est-ce qu'un Tag ?
Définition : Un tag est une valeur de chaîne que vous pouvez attribuer à un GameObject
dans Unity.
But : Les tags sont utilisés pour catégoriser et identifier les GameObjects
à diverses fins, telles que différencier les objets contrôlés par le joueur, les ennemis, les objets à collecter, les obstacles, etc.
Usages Courants des Tags
Identification des Objets de Jeu : Les tags sont couramment utilisés pour identifier les GameObjects
importants dans votre scène, tels que le personnage du joueur, les ennemis, les objets à collecter, les objectifs, etc.
Détection de Collision : Les tags peuvent être utilisés pour déterminer le type de GameObjects
impliqués dans les collisions. Par exemple, vous pourriez vouloir vérifier si le joueur est entré en collision avec un ennemi ou un objet à collecter.
Détection de Déclencheur : Similaire à la détection de collision, vous pouvez utiliser des tags pour identifier les GameObjects
qui entrent dans les zones de déclenchement configurées dans votre scène.
Exemple
-
OnCollisionEnter2D
: c'est une méthode spéciale dans Unity qui est appelée automatiquement lorsque l'objet auquel ce script est attaché entre en collision avec un autre objet; -
Collision2D collision
: cette partie de la méthode vous donne des informations sur la collision, comme quels objets étaient impliqués; -
if (collision.collider.tag == "ground")
: cette ligne vérifie si l'objet avec lequel nous sommes entrés en collision a une étiquette appelée "ground". Les étiquettes sont comme des labels que vous pouvez donner aux objets dans Unity pour les identifier facilement; -
Debug.Log("you lost");
: si l'objet que nous avons touché est étiqueté comme "ground", cette ligne imprimera "you lost" dans la Console Unity. C'est un moyen de donner un retour ou de déclencher des événements dans votre jeu.
-
OnTriggerEnter2D
: c'est une méthode spéciale dans Unity qui est appelée automatiquement lorsque l'objet auquel ce script est attaché entre dans une zone de déclenchement d'un autre objet. Pensez-y comme un capteur qui détecte lorsque vous passez par une porte ; -
Collider2D collision
: cette partie de la méthode vous donne des informations sur l'objet qui est entré dans la zone de déclenchement. C'est comme une note qui vous dit quel objet vous venez de traverser ; -
if (collision.tag == "win")
: cette ligne vérifie si l'objet que nous avons pénétré a une étiquette appelée "win". Les étiquettes sont comme des labels que vous pouvez donner aux objets dans Unity pour les identifier facilement. C'est comme vérifier si l'objet a une étiquette nominative qui dit "win" ; -
Debug.Log("you won");
: si l'objet que nous avons pénétré est étiqueté comme "win", cette ligne imprimera "you won" dans la console Unity. C'est un moyen de donner un retour d'information ou de déclencher des événements dans votre jeu. Imaginez-le comme un message qui s'affiche pour vous dire que vous avez accompli quelque chose.
1. Lors de l'utilisation de OnTriggerEnter2D
, quelle propriété des colliders doit être définie sur true pour activer la détection de déclenchement ?
2. Quelle méthode doit être utilisée pour gérer la détection de collision entre deux colliders qui ne sont pas des déclencheurs ?
Merci pour vos commentaires !