Retrouvons le composant Rigidbody, vu dans la session précédente, comme étant essentiel pour les collisions.
Unity:Utiliser les colliders dans Unity pour détecter des collisions
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 !
Par essence, le Collider définit la forme physique (vis à vis du moteur physique de Unity) du GameObject.
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 ....
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...
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().
Session précédente / suivante
Retrouvons le composant Rigidbody, vu dans la session précédente, comme étant essentiel pour les collisions.