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.
Desafio
FácilOs 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
Carpagatoll(3): adicione esse valor acollectede registre o total,Toll: 3para o primeiro carro, depoisToll: 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
}
}
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
1Rigidbody
Gravidade e MassaEmpurrar com AddForcePular com um ImpulsoFixedUpdate para FísicaVelocidadeCorpos CinemáticosRevisão: Plataforma de Lançamento2Colisões
OnCollisionEnterO que eu acertei?Quebre no impactoNo chãoQuique e atritoFormas dos collidersRevisão: Parede destrutível5Projeto: Corrida das Moedas
A Bola RolanteMoedas para Coletar