OnTriggerEnter
Fa parte della sezione Fisica e gameplay del percorso Unity di Coddy. Lezione 16 di 63.
void OnTriggerEnter(Collider other) viene eseguito una volta, durante il passaggio della simulazione fisica in cui un altro collider inizia a sovrapporsi a un trigger. other è quel collider, quindi other.name, other.gameObject e other.CompareTag("Player") ti dicono che cosa è entrato. Unity lo chiama negli script di entrambi gli oggetti: sul trigger, other è l'oggetto che lo attraversa, mentre sull'oggetto che lo attraversa, other è il trigger.
Questa linea del traguardo reagisce al giocatore e a nient'altro, quindi una palla che la attraversa rotolando non registra nulla:
void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player"))
{
Debug.Log(other.name + " crossed the finish line");
}
}Il parametro deve essere un Collider. Se lo scrivi come void OnTriggerEnter(Collision collision), lo script viene comunque compilato, perché per C# è un metodo ordinario. Unity controlla il parametro stesso, registra un Script error: OnTriggerEnter che indica This message parameter has to be of type: Collider e non chiama mai il metodo. Collision si usa con OnCollisionEnter, dove due corpi solidi si incontrano in un punto di contatto. Un trigger non ha un contatto da segnalare, ma solo il collider, quindi riceve un Collider.
Sfida
FacileI veicoli attraversano il casello, un trigger. Lo script Driver li sposta ed è già completo. Scrivi lo script TollGate del casello:
- Ogni veicolo con tag
Carpaga iltoll(3): aggiungilo acollectede registra il totale:Toll: 3per la prima auto, poiToll: 6. - Tutto il resto, come il ciclista, passa gratis e non registra nulla.
Premi prima Gioca: la Console mostra già un errore di script relativo al metodo così com'è scritto. Correggilo, poi premi Verifica.
Provalo tu
using UnityEngine;
public class TollGate : MonoBehaviour
{
public int toll = 3;
int collected;
void OnTriggerEnter(Collision collision)
{
// Le auto pagano il pedaggio; tutto il resto passa gratis
}
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fisica e gameplay
1Corpo rigido
Gravità e massaSpingi con AddForceSalta con un impulsoFixedUpdate per la fisicaVelocitàCorpi cinematiciRiepilogo: piattaforma di lancio4Coroutine
InvokeInvokeRepeating, CancelInvokeLa tua prima coroutineCicli nelle coroutineInterrompere le coroutineRiepilogo: conto alla rovescia2Collisioni
OnCollisionEnterCosa ho colpito?Rompersi all'impattoRestare a terraRimbalzo e attritoForme dei ColliderRiepilogo: muro distruttibile5Progetto: Corsa alle monete
La palla rotolanteMonete da raccogliere