Uma das vantagens de se usar uma Game Engine são os sistemas prontos que elas já nos disponibilizam.
E a Unity, por sua vez, traz vários sistemas como renderização, sistema de áudio, compilador de código, etc.
E a Layer Collision Matrix é extremamente importante para gerenciarmos o sistema avançado de colisão da Unity.
Como funciona o sistema de colisão na Unity?
Na Unity temos um sistema complexo de colisão que trabalha em conjunto com o sistema de física.
Pois, através do componente RigidBody que é responsável pela simulação da física, conseguimos detectar as colisões.
E a regra é que no mínimo um objeto da colisão obrigatoriamente precisa ter o componente Rigidbody.
E assim é possível detectar os colisores que entraram em contato na colisão, o tipo de colisor também.
Pois, temos colisores que podem ser atravessados como um, lança chama, e os que não podem, como paredes, por exemplo.
Como organizar as colisões?
Se todo objeto no jogo tem colisão, porque eles não saem colidindo entre si descontroladamente?
E isso não acontece porque podemos controlar as colisões, separando os objetos em layers personalizáveis.
Pois, assim você consegue definir quais colisores podem ou não se colidir entre si, evitando colisões indesejáveis.
E você pode criar um layer para inimigos, e outra para projeteis, como os ataques do player e inimigos.
E assim você pode desativar a colisão de inimigos com outros inimigos, independente do seu tipo de colisor.
E ativar a colisão nos pretejeis entre si, assim o projetil ao colidir com outro, se destroem.
E também vai detectar colisão com os inimigos, mas os inimigos podem andar livremente sem empurrar um ao outro.
E para gerenciar e personalizar essas colisões e layers de colisões temos a Layer Collision Matrix.
Como Usar a Layer Collision Matrix
Para acessar a Layer Collision Matrix vá em: Edit – Project Settings – Physics ou Physics 2D – Layer Collision Matrix.
E repare que a estrutura é parecida com uma piramide, onde cada layer é representada em cima e na lateral.
E não é tão complicado de entender, na lateral você tem a linha horizontal de checkbox para configurar a Layer.
Pois, cada checkbox vai representar a layer que você quer ou não detectar a colisão.
E no exemplo adicionei a layer Enemy e Projectile, e que foram adicionadas lá embaixo na matrix de colisão.
E para desativar as colisões delas, basta descer desmarcando suas checkbox com as layer que não deseja colisão.
Por exemplo, aqui eu desativei a colisão da água com os inimigos e projeteis, e a colisão de inimigos com outros inimigos.
E em seu projeto você pode configurar como necessitar usando essa lógica.
E por fim após fazer o gerenciamento das camadas de colisão em seu projeto, ficará mais fácil trabalhar.
Pois, basta atribuir a cada novo objeto de jogo, a layer mais recomendada para ele, e que faça mais sentido.
Uma dica muito bacana para você, que tem interesse em aprender mais sobre a Unity e a sua linguagem C#, essa é a sua chance.
Pois, temos um curso sensacional que te mostra a base da programação na Unity.
E de quebra você ainda vai desenvolver um jogo top down com sistema de diálogo, crafts, inimigo e muito mais.
Basta clicar na imagem ao lado para saber tudo sobre esse curso incrível!
Seja o primeiro a comentar.