Os materiais didáticos aqui disponibilizados estão licenciados através de Creative Commons Atribuição-SemDerivações-SemDerivados CC BY-NC-ND. Você possui a permissão para visualizar e compartilhar, desde que atribua os créditos do autor. Não poderá alterá-los e nem utilizá-los para fins comerciais.
Atribuição-SemDerivações-SemDerivados
CC BY-NC-ND
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:
void OnTriggerEnter(Collider other) {
Destroy(other.gameObject); }
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