Cursos / Jogos Digitais / Desenvolvimento com Motores de Jogos II / Aula

arrow_back Aula 04 - Jogo Polygonal Rescue - Parte 2 - Objetos Coletáveis

Colisão com o Objeto Coletável

Agora vamos editar o script para adicionar o método que será executado quando uma colisão acontecer. Escolha a opção de editar o script ColetaItem, como na Figura 12.

O MonoDevelop será aberto com o script ColetaItem.cs. Ele virá com o código fonte padrão, já com os métodos Start e Update criados. Remova esses dois métodos deixando apenas a classe criada, veja na Figura 13.

Como previsto, uma colisão acontecerá entre o personagem e o cubo coletável, e como o seu Box Collider está marcado como “Is Trigger”, não haverá interação física, porém, um evento de colisão ocorrerá e executará um método especial nesse script ColetaItem, caso o método exista, então poderemos escrever o código que irá remover o cubo coletável da cena. Esse método especial é chamado de “OnTriggerEnter”, pois recebe um colisor como parâmetro e deve ser escrito dentro da classe ColetaItem. Veja na Figura 14.

Repare que o método OnTriggerEnter tem o parâmetro “other”, que é do tipo Collider. Como o script está associado ao personagem, esse método será chamado todas as vezes em que o personagem colidir com algo, então o parâmetro “other” recebido terá uma referência ao outro collider participante da colisão. Então, no nosso caso, em uma colisão do personagem com um cubo coletável, o parâmetro “other” será uma referência ao Box Collider do Cubo.

Atenção!

Lembre-se que o Box Collider do Cubo é um componente do nosso objeto coletável e não o objeto coletável em si. Para acessar o Cubo por completo a partir do seu box colider (na variável other), você pode usar o comando “other.gameObject”, o qual trará uma referência ao Cubo coletável.

Versão 5.3 - Todos os Direitos reservados