Cursos / Jogos Digitais / Desenvolvimento com Motores de Jogos I / Aula
Na aula sobre pulos, vimos uma das maneiras de fazer o groundCheck, lembra? A outra foi deixada ao final como curiosidade, para vocês poderem conhecer as duas. Aos que foram curiosos e deram uma olhada por lá, ótimo! Aos que ainda não viram, discutiremos rapidamente a alteração necessária.
Em nosso script, utilizamos um LineCast do centro do personagem ao GroundCheck, para definir se estamos ou não no chão. Porém, a área coberta para isso é apenas uma linha! Sendo assim, os lados do nosso personagem terminam ficando de fora da equação, como visto na Figura 5. A outra maneira de fazermos esse teste, no entanto, consegue cobrir uma área maior.
A biblioteca Physics2D, que possui o método LineCast utilizado em nosso script, também possui métodos para definir áreas de contato, ao invés de um simples ponto. Assim, podemos definir, por exemplo, uma caixa que fique em torno do ponto groundCheck, o qual definimos anteriormente, e buscar, dentro dessa área, o contato com a camada desejada, ao invés de utilizar apenas um ponto. Com isso, podemos cobrir uma maior parte do personagem e facilitar a detecção de chão. O método que utilizaremos para isso é o OverlapBox, visto na Listagem 2, o qual altera, mais uma vez, o FixedUpdate do script PlayerController.
Listagem 2 - Adicionando o OverlapBox ao FixedUpdate do script PlayerController.Versão 5.3 - Todos os Direitos reservados