Menu
CoddyTech

OnTriggerEnter

Parte da seção Física e jogabilidade do Journey de Unity da Coddy. Lição 16 de 63.

void OnTriggerEnter(Collider other) é executado uma vez, na etapa de física em que outro colisor começa a se sobrepor a um gatilho. other é esse colisor, então other.name, other.gameObject e other.CompareTag("Player") informam o que entrou. Unity chama esse método nos scripts de ambos os objetos: no gatilho, other é o visitante; no visitante, other é o gatilho.

Esta linha de chegada reage ao jogador e a mais nada, então uma bola que rola sobre ela não registra nada:

void OnTriggerEnter(Collider other)
{
    if (other.CompareTag("Player"))
    {
        Debug.Log(other.name + " crossed the finish line");
    }
}

O parâmetro precisa ser um Collider. Escrito como void OnTriggerEnter(Collision collision), o script ainda compila, porque, para C#, é um método comum. Unity verifica o próprio parâmetro, registra um Script error: OnTriggerEnter que diz This message parameter has to be of type: Collider e nunca chama o método. Collision pertence a OnCollisionEnter, em que dois corpos sólidos se encontram em um ponto de contato. Um gatilho não tem contato para relatar, apenas o colisor, então ele recebe um Collider.

challenge icon

Desafio

Fácil

Os veículos atravessam o Portão do pedágio, um gatilho. O script Driver os move e está pronto. Escreva o script TollGate do portão:

  • Cada veículo marcado com Car paga toll (3): adicione esse valor a collected e registre o total, Toll: 3 para o primeiro carro, depois Toll: 6.
  • Qualquer outra coisa, como o Ciclista, passa de graça e não registra nada.

Pressione Jogar primeiro: o Console já mostra um erro de script relacionado ao método da forma como está escrito. Corrija-o e, em seguida, Verifique.

Experimente você mesmo

using UnityEngine;

public class TollGate : MonoBehaviour
{
    public int toll = 3;
    int collected;

    void OnTriggerEnter(Collision collision)
    {
        // Os carros pagam o pedágio; todo o resto passa de graça
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Física e jogabilidade