Menu
CoddyTech

Cosa ho colpito?

Fa parte della sezione Fisica e gameplay del percorso Unity di Coddy. Lezione 9 di 63.

Collision che Unity passa a OnCollisionEnter descrive l'altra parte del contatto. collision.gameObject è l'oggetto contro cui ti sei scontrato, quindi collision.gameObject.name è il suo nome e collision.gameObject.CompareTag("Hazard") ne controlla il tag. (collision.collider è il collider preciso che hai toccato, quando un oggetto ne ha diversi.)

Questa macchinina registra tutto ciò contro cui urta e si lamenta dei pericoli:

void OnCollisionEnter(Collision collision)
{
    Debug.Log("Bumped into " + collision.gameObject.name);
    if (collision.gameObject.CompareTag("Hazard"))
    {
        Debug.Log("Ouch!");
    }
}

La prima riga che registra è Bumped into Floor, nel momento in cui il gioco inizia: anche il pavimento su cui si trova è una collisione. Quindi, uno script che reagisce agli urti controlla sempre per prima cosa contro cosa ha urtato. Fai attenzione a quale oggetto indichi: CompareTag("Hazard") da solo controlla il tag del tuo oggetto, e Destroy(gameObject) distrugge il tuo oggetto, mentre Destroy(collision.gameObject) rimuove quello contro cui hai urtato.

challenge icon

Sfida

Facile

Guida lo spazzaneve con le frecce (già scritte) e assegnagli un compito. I due blocchi bianchi hanno il tag Snow.

  • Quando lo spazzaneve urta un oggetto con il tag Snow, distruggi quel blocco, aggiungi 1 al conteggio e registralo: Cleared 1, Cleared 2.
  • Tutto il resto che lo spazzaneve tocca, compresi il terreno e il muro, resta al suo posto.

Premi Gioca e libera la strada, poi Controlla.

Provalo tu

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);
    }

    // Neve incontrata dallo spazzaneve: distruggila, conteggiala e registra il totale
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fisica e gameplay