Cursos / Jogos Digitais / Desenvolvimento com Motores de Jogos II / Aula

arrow_back Aula 07 - Jogo Polygonal Rescue - Parte 5 - Gizmos Personalizados

Adaptando o InstanciarPrefabs para uma Área Retangular

Para adaptar o nosso InstanciarPrefabs.cs para que a área de geração seja retangular, precisamos inicialmente trocar a variável float distancia_maxima por duas outras:

  • public float largura: Largura do retângulo (eixo X).
  • public float comprimento: Comprimento do retângulo (eixo Y).

Assim poderemos configurar essas duas variáveis separadamente. Para isso realize os seguintes passos:

  1. Remove a variável distancia_maxima;
  2. Adicione as variáveis largura e comprimento (ambas do tipo float);

A declaração de suas variáveis deve ficar como na Figura 5.

Agora vamos modificar a nossa função Awake para usar a largura e o comprimento no lugar de distancia_maxima. Não é algo muito difícil, pois o código está bem organizado. Repare que distancia_maxima é atualmente utilizada para a definição da posição da instância do prefab a ser criado (ver Figura 6).

Repare na Figura 6 que a variável distancia_maxima está destacada pelo Monodevelop. Isso ocorre pelo fato de que ela não existe mais, já que a removemos.

Trocaremos as duas ocorrências de distancia_maxima por (largura/2) na primeira linha em que ela aprece. Por que dividir largura por 2? Isso se dá pelo fato de a posição X variar do centro da área + para um lado e - para o outro, ou seja, para cada um desses lados precisamos variar a metade da largura. A mesma coisa para a variável comprimento e o eixo Y. A Figura 7 mostra em azul a área de geração retangular que estamos querendo criar, assim como a representação das variáveis largura e comprimento em vermelho e a metade do valor dessas variáveis de cada lado do centro em verde.

Para utilizar a variável largura modifique a linha:

Para que fique assim:

Para utilizar a variável comprimento, modifique a linha:

Para que fique assim:

E aí, tudo bem até aqui? É basicamente essa a única mudança no script para que ele instancie prefabs em uma área retangular. Lembre-se que qualquer dificuldade ou questionamentos podem ser esclarecidos nos encontros presenciais ou através da criação de tópicos no Moodle para discutir sobre o assunto.

Versão 5.3 - Todos os Direitos reservados