Logo Makeyourgame
Accueil Les formations Créer un jeu Les ateliers Les tutoriels Blog
Logo Makeyourgame
Les formations Les financements Les exercices La certification Unity
Logo Makeyourgame
Mes objectifs Les jeux Les ressources Le glossaire
Logo Makeyourgame
Les tutos Les tutos Youtube

Introduction aux collisions sous Unity

Unity:Utiliser les colliders dans Unity pour détecter des collisions


Introduction aux collisions sous Unity

Dans tous les jeux et beaucoup d'applications, il est nécessaire de savoir détecter des collisions. Sans même parler de notion de Physics 3D (Physique), avec la gravité par exemple, il nous faut comprendre les colliders et collision avant d'aller plus loin.

Chaque GameObject peut disposer d'un composant de type Collider, comme nous l'avons déjà vu sur "Comment appliquer des Collider 2D dans Unity ? ". Bien que ce tutoriel aborde les colliders 2D, la majorité est transposable en 3D.

Cela nous met déjà sur la voie que nous nous sommes fixée, mais ce n'est pas suffisant pour pouvoir détecter des collisions avec l'API de Unity !

Rappel sur les Colliders

Par essence, le Collider définit la forme physique (vis à vis du moteur physique de Unity) du GameObject.


https://makeyourgame.fun//upload/users/alto/atelier/collisions/collidershapedefinition-5e88cc1548890.png

Comme on le voit ci-dessus, le volume définit par la sphère ne correspond en rien au réel volume de l'objet 3D.

Ainsi c'est bien au développeur de choisir, selon les besoins du jeu, non seulement le volume du Collider (Dans le cas d'une sphère par exemple, c'est la "radius" de la sphère sous Unity), mais aussi le type de Collider que l'on va choisir: Sphere, Carré, Rectangle ....

Détection de collisions

Une fois que nos "volumes physiques" sont définis par nos Colliders, sur nos GameObjects, nous pouvons alors penser à la détection.

Mais dans le monde de Unity, il n'est pas de détection de collision, sans Rigidbody !

En effet vous pouvez toujours tenter, mais aucun de vos objets 3D ne sera bloquant, vis à vis de votre personnage, si ce dernier ne dispose pas d'un composant Rigidbody.

De plus toujours sans ce composant, il ne sera pas possible de détecter ne serait-ce qu'une toute petite collision... https://makeyourgame.fun/sceditor/emoticons/sad.png

Enfin et une fois les conditions réunies, il devient possible de scripter en c# et de détecter une collision grâce aux callback offert par l'API de Unity comme par exemple la méthode OnColliderEnter().





Validation de la session

Veuillez vous connecter ou créer un compte pour pouvoir valider cette session et ainsi gagner encore plus d'XP !


Retour à l'atelier


Continuer sur: Introduction aux collisions ?

Session précédente / suivante