Menu
CoddyTech

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é.

challenge icon

Défi

Facile

Conduis 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
}
quiz iconTestez-vous

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