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

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

Analisando o script InstanciarPrefabs

Revisando o script, repare que temos três variáveis públicas:

  • List<GameObject> prefabs_base: utilizada para armazenar uma lista de Prefabs que podem ser instanciados pelo script.
  • float distancia_maxima: indica qual a máxima distância dos eixos X e Z do centro que os prefabs podem ser instanciados.
  • Int quantidade: a quantidade total de Prefabs que serão instanciados.

Nesse script (executado antes do Start), o que fazemos no método Awake é um laço for para que uma quantidade de prefabs da lista prefabs_base seja criada em posições aleatórias. Cada prefab instanciado é criado com a coordenada Y (altura) igual ao do gameobject que o script está adicionado enquanto as coordenadas X e Z são configuradas com uma variação de + ou - distancia_maxima. Isso faz com que os prefabs fiquem na mesma altura do objeto com o script, entretanto suas posições no plano X,Z são aleatórias podendo no se distanciar do centro no máximo com o valor de distancia_maxima.

Vale observar que essa distância máxima é aplicada individualmente entre as coordenadas X e Y, e se você analisar com cuidado descobrirá que se a posição final do prefab gerado for próximo ao máximo possível em X e Y ele ficará em um local com uma distância linear ao centro maior que a distancia_maxima. Isso foi feito de forma proposital, pois assim a área possível de geração dos prefabs é um quadrado e não um círculo. A Figura 4 ilustra essa área detalhadamente.

A seguir vamos fazer duas mudanças nesse script antes de usá-lo em nosso jogo:

  1. Permitir que a área de criação dos prefabs seja um retângulo de qualquer dimensão no eixo X ou eixo Y, pois atualmente é um quadrado de largura e altura idênticas (2 vezes a variável distancia_maxima)
  2. Criar um método para desenhar um Gizmo personalizado de modo que essa área seja exibida no editor do Unity, isso facilitará bastante a sua configuração.

Versão 5.3 - Todos os Direitos reservados