Navigation▲
Tutoriel précédent : lancer de rayon |
Tutoriel suivant : les interfaces utilisateur |
I. Vidéo▲
Cliquez pour lire la vidéo
II. Ce qu'il faut retenir▲
II-A. Les collisions▲
Le RigidBody est un composant qui simule la physique. Pour que la collision soit respectée, les composants doivent avoir un RigidBody.
Lorsqu'une collision a lieu, Unity 3D envoie un message pour indiquer la collision aux objets qui rentrent en collision. Ce message peut être attrapé par les scripts attachés aux objets en collision grâce à la fonction OnCollisionEnter() :
function OnCollisionEnter
(
col
:
Collision){
Debug.Log
(
"Collision"
);
}
Le paramètre de type Collision permet à Unity 3D de donner des informations supplémentaires sur la collision comme le RigidBody touché ou encore, le GameObject.
function OnCollisionEnter
(
col
:
Collision){
Debug.Log
(
"Collision avec "
+
col.
gameObject.
name
);
}
II-A-1. Déplacer un objet ayant un RigidBody▲
L'utilisation des méthodes Translate(), Rotate() que nous avions vues auparavant permet bien de déplacer un objet, mais elles ont aussi la particularité de fausser la simulation physique.
Pour éviter tout souci, les objets possédant un RigidBody, et donc, une entité physique qui sera simulée par le moteur, doivent être déplacés en leur appliquant des forces :
function Update
(
){
rigidbody.AddForce
(
Vector3.
forward
*
Time.
deltaTime *
8
);
}
II-B. Les déclencheurs (triggers)▲
Les déclencheurs utilisent les « collider » afin de détecter si l'objet est à travers un autre. De plus, pour utiliser les objets comme déclencheurs, ils n'ont pas besoin de RigidBody (ils ne seront pas pris en compte pas la simulation physique, mais pour qu'un objet soit détecté, celui-ci doit avoir un rigidbody). En bref, les déclencheurs permettent de provoquer une action, lorsqu'un objet entre dans l'autre. Généralement, ils ne sont pas visibles dans le jeu.
Comme précédemment, vous pouvez, à l'aide d'un script, savoir si un objet allume un déclencheur en passant dans celui-ci :
function OnTriggerEnter
(
col
:
Collision){
Debug.Log
(
"Trigger"
);
}
III. Commenter▲
Vous pouvez commenter et donner vos avis dans la discussion associée sur le forum, ou encore, poser vos questions dans le forum Unity.
IV. Remerciements▲
Nous remercions « ToutApprendre » pour l'élaboration et la réalisation de ces vidéos. Vous pouvez retrouver sa chaîne YouTube en suivant ce lien.
Navigation▲
Tutoriel précédent : lancer de rayon |
Tutoriel suivant : les interfaces utilisateur |