OnCollisionEnter
Fait partie de la section Physique et gameplay du Journey Unity de Coddy. Leçon 8 sur 71.
Lorsque deux collisionneurs commencent à se toucher, Unity appelle OnCollisionEnter(Collision collision) dans les scripts des deux objets. Cette méthode est appelée une seule fois, lors de l’étape de physique où le contact commence, et pas de nouveau tant qu’ils restent en contact. Pour qu’une collision se produise, au moins l’un des deux objets doit avoir un Rigidbody que la physique déplace : un mur et un sol sans Rigidbody ne se signalent jamais rien l’un à l’autre.
Cette caisse consigne un message lorsqu’elle atterrit. Elle possède un Rigidbody, donc elle tombe, et le message est envoyé à l’étape où elle rencontre le sol :
void OnCollisionEnter(Collision collision)
{
Debug.Log("Thud!");
}La caisse consigne un message une fois, puis seulement après avoir quitté le sol et y avoir atterri une deuxième fois. Le sol reçoit aussi le message : un script qui s’y trouve détecterait l’atterrissage de la caisse, même si le sol n’a pas de Rigidbody. Le nom et le paramètre doivent être exacts. Une méthode nommée onCollisionEnter n’est jamais appelée, sans qu’aucune erreur ne soit signalée. Si une méthode prend un Collider, Unity consigne Script error: OnCollisionEnter avec This message parameter has to be of type: Collision, puis l’ignore. Tant que les deux objets restent en contact, Unity appelle OnCollisionStay à chaque étape de physique et, lorsqu’ils se séparent, appelle une fois OnCollisionExit.
Défi
FacileLa plaque de pression compte ce qui atterrit dessus.
- Ajoute un champ
private int presses;àPressurePlate. - Ajoute
void OnCollisionEnter(Collision collision): ajoute 1 àpresseset affiche"Pressed " + pressesdans le journal.
Appuie sur « Jouer » : la caisse atterrit et la Console affiche Pressed 1, une fois. Puis clique sur « Vérifier ».
Essayez vous-même
using UnityEngine;
public class PressurePlate : MonoBehaviour
{
// Compte chaque atterrissage et consigne-le : Pressed 1, Pressed 2, ...
}
Toutes les leçons de Physique et gameplay
1Corps rigide
Gravité et massePousser avec AddForceSauter avec une impulsionFixedUpdate pour la physiqueVitesseCorps cinématiquesRécapitulatif : plateforme de lancement4Coroutines
InvoquerInvokeRepeating, CancelInvokeVotre première coroutineBoucles dans les coroutinesArrêter les coroutinesRécapitulatif : compte à rebours7Rotation
Angles d’EulerQuaternionsRegardez dans la direction où vous vous déplacezTourner en douceurRécapitulatif : tourelle10Projet : Évasion de l’arène
L’arèneLes chasseurs2Collisions
OnCollisionEnterQu’est-ce que j’ai touché ?Se briser à l’impactRester au solRebond et frictionFormes des collidersRécapitulatif : mur destructible5Projet : Course aux pièces
La balle roulanteDes pièces à ramasser3Déclencheurs
Colliders déclencheursOnTriggerEnterObjets à ramasserLes caisses gardent le resteZones mortellesEntrée et sortieRécapitulatif : clé et porteEntraînez-vous par vous-même : Playground Unity