Comment détecter la collision dans Unity
Dans Unity, la détection de collision est indispensable. Cela permet de détecter si deux objets entrent en collision et créer des interactions. Dans cet article, je vais expliquer comment détecter la collision dans Unity en affichant le code source et en expliquant la procédure.
Tout d’abord, nous devons comprendre les concepts de base de la détection de collision dans Unity. Unity utilise un système de boîtes de collision (colliders) pour déterminer si deux objets entrent en collision. Chaque objet a une boîte de collision attachée, qui est une forme invisible autour de l’objet. Si les boîtes de collision de deux objets se chevauchent, cela signifie qu’ils sont en collision.
Pour installer Unity gratuitement, voici un tutoriel complet
Détecter la collision avec Unity 3D
Pour détecter les collisions, nous devons utiliser une fonction appelée OnCollisionEnter. Cette fonction est appelée automatiquement lorsqu’un objet entre en collision avec un autre objet.
Voici un exemple de code pour détecter les collisions entre un joueur en mettant le script sur le Game Object du joueur.
void OnCollisionEnter(Collision collision) { if(collision.gameObject.tag == "Enemy") { Debug.Log("Collision with enemy"); //Do something, like reduce player's health } }
Dans cet exemple, nous avons une fonction OnCollisionEnter qui est appelée lorsqu’il y a une collision. Nous vérifions si l’objet avec lequel nous sommes en collision a le tag “Enemy”. Si c’est le cas, nous affichons un message de débogage.
Pour information, il existe également les fonctions OnColliderExit qui permettent de détecter lorsqu’un collider n’est plus en contact et OnColliderStay qui indique que les colliders restent en contact.
Configurer les Game Objects dans Unity pour détecter les collisions
Maintenant que nous avons vu un exemple de code pour détecter les collisions, nous allons expliquer la procédure pour l’ajouter à notre jeu Unity.
1. Ajouter une boîte de collision à chaque objet que nous voulons détecter les collisions.
Pour ajouter une boîte de collision, sélectionnez l’objet dans la hiérarchie, cliquez sur le bouton “Add Component” et recherchez “Box Collider” ou tout autre type de colliders. Cela ajoutera une boîte de collision à l’objet.
2. Ajouter un “Rigibody” sur l’objet qui détecte la collision.
Pour ajouter un “Rigibody“, cliquez sur le bouton “Add Component” et recherchez “Rigibody“.
3. Ajouter un script pour détecter les collisions.
Pour ajouter un script, cliquez sur le bouton “Add Component” et recherchez “New Script“. Nommez le script et ouvrez-le en double-cliquant dessus. Si le script existe déjà, faites glisser le script depuis la fenêtre de projet sur l’objet dans la hiérarchie.
4. Écrire le code pour détecter les collisions.
Dans le script, ajoutez une fonction OnCollisionEnter pour détecter les collisions. Utilisez le code d’exemple ci-dessus comme référence.
5. Configurer les tags des Game Objects
Pensez également à bien définir les tags de chaque Game Object comme “Player” ou “Enemy” pour filtrer les collisions.
Notes importantes
Nous avons vu ici la collision 3D. Pour les collisions en 2D, il faudra utiliser les fonctions, les colliders 2D et les rigibody 2D.
Si vous voulez détecter des collisions avec des colliders configurés en “triggers”, il faudra utiliser d’autres fonctions comme OnTriggerEnter, etc.
Voilà vous savez comment détecter les collisions dans Unity. Postez un petit commentaire si cela vous a aidé ! Merci !