Conteúdo do Curso
Unity para Iniciantes
Unity para Iniciantes
OnCollisionEnter e OnTriggerEnter
OnCollisionEnter2D
Usage: This method is called when a 2D collider attached to the GameObject
this script is attached to, collides with another collider in the scene and at least one of the colliders has a Rigidbody2D
attached.
Trigger: This method is mainly used for handling physical collisions, where objects actually "bump" into each other.
Example Scenario: Imagine you have a game with a character that jumps and lands on platforms. When the character lands on a platform, you may want to play a landing sound effect, change the character's animation, or trigger some other action. You would use OnCollisionEnter2D
to detect when the character's collider collides with the platform's collider.
OnCollisionEnter2D:
Uso: Este método é chamado quando um colisor 2D anexado ao GameObject
ao qual este script está anexado colide com outro colisor na cena e pelo menos um dos colidores tem um Rigidbody2D
anexado.
Gatilho: Este método é usado principalmente para lidar com colisões físicas, onde os objetos realmente "se chocam" entre si.
Cenário de Exemplo: Imagine que você tem um jogo com um personagem que pula e pousa em plataformas. Quando o personagem pousa em uma plataforma, você pode querer tocar um efeito sonoro de aterrissagem, mudar a animação do personagem ou acionar alguma outra ação. Você usaria OnCollisionEnter2D
para detectar quando o colisor do personagem colide com o colisor da plataforma.
OnTriggerEnter2D:
Uso: Este método é chamado quando um colisor 2D anexado ao GameObject
ao qual este script está anexado se sobrepõe a outro colisor na cena e pelo menos um dos colidores tem a propriedade "Is Trigger" habilitada.
Gatilho: Ao contrário de OnCollisionEnter2D
, este método não se trata de colisões físicas, mas sim de detectar quando um objeto entra no espaço de outro sem necessariamente parar seu movimento. Pense nisso como atravessar uma porta sem empurrá-la fisicamente.
Cenário de Exemplo: Digamos que você tenha um jogo onde o jogador coleta moedas. Quando o personagem do jogador se move sobre uma moeda, você quer aumentar a pontuação do jogador e fazer a moeda desaparecer. Você usaria OnTriggerEnter2D
para detectar quando o colisor do jogador se sobrepõe ao colisor da moeda.
O que é uma Tag?
Definição: Uma tag é um valor string que você pode atribuir a um GameObject
no Unity.
Propósito: As tags são usadas para categorizar e identificar GameObjects
para vários propósitos, como diferenciar entre objetos controlados pelo jogador, inimigos, colecionáveis, obstáculos, etc.
Usos Comuns de Tags:
Identificação de Objetos do Jogo: Tags são comumente usadas para identificar GameObjects
importantes na sua cena, como o personagem do jogador, inimigos, colecionáveis, objetivos, etc.
Detecção de Colisão: Tags podem ser usadas para determinar o tipo de GameObjects
envolvidos em colisões. Por exemplo, você pode querer verificar se o jogador colidiu com um inimigo ou um colecionável.
Detecção de Trigger: Similar à detecção de colisão, você pode usar tags para identificar GameObjects
que entram em zonas de gatilho configuradas na sua cena.
Exemplo:
Este método é chamado sempre que ocorre uma colisão entre o jogador e outro GameObject
na cena.
O método recebe um parâmetro de colisão do tipo Collision2D
, que contém informações sobre a colisão.
Ele verifica se a tag do colisor envolvido na colisão é igual a "ground".
Se a condição for verdadeira, ele imprime "você perdeu" no Console do Unity usando Debug.Log()
.
1. When using OnTriggerEnter2D
, which property of colliders must be set to true to enable trigger detection?
2. Ao usar OnTriggerEnter2D, qual propriedade dos coliders deve ser definida como verdadeira para habilitar a detecção de gatilho?
Obrigado pelo seu feedback!