Qu’est-ce que j’ai touché ?
Fait partie de la section Physique et gameplay du Journey Unity de Coddy. Leçon 9 sur 63.
La Collision que Unity transmet à OnCollisionEnter décrit l’autre côté du contact. collision.gameObject est l’objet que tu as percuté, donc collision.gameObject.name est son nom, et collision.gameObject.CompareTag("Hazard") vérifie son tag. (collision.collider désigne le collider exact que tu as touché, lorsqu’un objet en possède plusieurs.)
Cette voiture tamponneuse enregistre tout ce qu’elle percute et se plaint des dangers :
void OnCollisionEnter(Collision collision)
{
Debug.Log("Bumped into " + collision.gameObject.name);
if (collision.gameObject.CompareTag("Hazard"))
{
Debug.Log("Ouch!");
}
}La première ligne qu’elle enregistre est Bumped into Floor, au moment où le jeu démarre : le sol sur lequel elle se trouve compte aussi comme une collision. Un script qui réagit aux impacts vérifie donc toujours d’abord ce qu’il a heurté. Fais attention à l’objet que tu désignes : CompareTag("Hazard") tout seul vérifie le tag de ton propre objet, et Destroy(gameObject) détruit ton propre objet, tandis que Destroy(collision.gameObject) supprime celui que tu as heurté.
Défi
FacileConduis le chasse-neige avec les flèches (déjà écrites) et donne-lui une tâche. Les deux blocs blancs portent l’étiquette Snow.
- Lorsque le chasse-neige heurte un objet portant l’étiquette
Snow, détruis ce bloc, ajoute 1 au compteur et affiche-le dans le journal :Cleared 1,Cleared 2. - Tout le reste que touche le chasse-neige, y compris le sol et le mur, reste en place.
Appuie sur Jouer et dégage la route, puis Vérifier.
Essayez vous-même
using UnityEngine;
public class Plow : MonoBehaviour
{
public float speed = 3f;
private Rigidbody rb;
private int cleared;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
float h = Input.GetAxisRaw("Horizontal");
rb.linearVelocity = new Vector3(h * speed, rb.linearVelocity.y, 0);
}
// Neige heurtée par le chasse-neige : la détruire, la comptabiliser et enregistrer le total dans le journal
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
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 à rebours2Collisions
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 à ramasser