Comment détecter la collision dans Unity

Comment détecter les collisions dans Unity
Comment détecter les collisions 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.

★ Les lecteurs ont aussi apprécié cet article :▶︎  Formation GAME DEV LAUNCHER : devenez développeur de jeux vidéo indés

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.

box collider

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“.

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.

Unity - Manual: Tags

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.

Triggers | Jairo García Rincón

Voilà vous savez comment détecter les collisions dans Unity. Postez un petit commentaire si cela vous a aidé ! Merci !

★ Les lecteurs ont aussi apprécié cet article :▶︎  Comment exporter un modèle 3D de Blender .fbx vers Unity

Benoît Freslon

J'adore amuser les gens avec mes jeux depuis mon plus jeune âge. Je suis développeur professionnel de jeux vidéo depuis 2006, créateur de jeux vidéo indépendants, formateur dans les écoles de jeux vidéo, mais aussi game designer et développeur en Freelance.

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

×
DISPONIBLE !

Commencez dès maintenant à créer votre jeu vidéo comme les pros