Cursos / Jogos Digitais / Desenvolvimento com Motores de Jogos II / Aula
Com a colisão já funcionando entre o personagem e o cubo coletável, vamos removê-lo da cena nesse instante. Para isso você pode simplesmente usar o comando Destroy(other.gameObject); dentro do método OnTriggerEnter no script ColetaItem.
Lembrando, o parâmetro “other” é o Box Collider do Cubo e o other.gameObject é o Cubo em si, o qual queremos remover. Se você simplesmente executar o comando Destroy diretamente em other, somente o Box Collider do cubo será removido, e não o cubo por inteiro. Então o método OnTriggerEnter ficará assim:
Isso funcionará normalmente no nosso caso, pois, por enquanto, apenas os objetos coletáveis têm colisores com o Is Trigger marcado. Entretanto esse código não segue uma boa prática, já que ele não verifica de forma alguma se estamos colidindo realmente em um objeto, o qual deverá ser coletado (removido com o Destroy). Se no futuro o nosso jogo tiver objetos que tenham colisores com os Is Trigger marcados, mas não se trate de um coletável, o personagem mesmo assim irá removê-lo da cena. Para resolver esse problema vamos marcar os objetos coletáveis com um recurso especial do Unity chamado de Tags.
Versão 5.3 - Todos os Direitos reservados