Adicionando buracos de bala em um FPS

Continuando na minha demo de FPS, implementei dessa vez marcas de bala nas paredes e portas.

A marca de bala é feita com um objeto texturizado e pra posicionar no cenário eu uso o resultado do raycast do Unity, que retorna o objeto interceptado, o ponto de interseção e a normal naquele ponto. Com esses dados, eu posiciono a marca de forma que ela fique na frente do objeto acertado.

Como uma forma de otimização, as marcas de bala são guardadas em uma lista que pode ter seu tamanho máximo configurado para qualquer valor. Quando o tamanho máximo for atingido, os objetos mais antigos são destruídos liberando memória. Dessa forma, é possível gerar marcas de bala no cenário sem se preocupar em ter estouro de memória e problemas de desempenho.

No vídeo abaixo tem uma demonstração dessa nova função, com os buracos de bala sendo gerados nas superfícies atingidas por tiros e sendo removidos quando o tamanho máximo da lista é atingido. Pra deixar a demonstração mais fácil, eu limitei a cinco itens o máximo da lista, mas esse valor pode ser bem maior.

 

Estou disponibilizando também a demo atualizada aqui: FPS Demo.

Bookmark the permalink.

Comments are closed