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

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

Gizmos Personalizados

Você deve implementar o OnDrawGizmos em um script sempre que desejar desenhar Gizmos, os quais podem inclusive ser manipulados com o mouse. Nesta aula utilizaremos Gizmos para desenhar quatro linhas, as quais correspondem às bordas do retângulo representando a área de geração dos prefabs. É importante observar que essa função não é executada se o script ao qual essa área pertence não está expandido no Inspector.

O esqueleto padrão do método OnDrawGizmos é assim:

AخA
1
void OnDrawGizmos() {
2
  // desenho dos Gizmos aqui...
3
}

O funcionamento dos Gizmos segue o seguinte padrão: inicialmente você modifica a cor dos Gizmos e em seguida utiliza os comandos para desenhá-los na tela com a cor selecionada. Se deseja desenhar vários Gizmos com muitas cores, basta modificar a cor novamente, imediatamente, antes de desenhar cada Gizmo.

Para mudar a cor atual dos Gizmos você deve usar o seguinte comando:

1
1
Gizmos.color = Color.yellow;

Isso mudará a cor dos Gizmos desenhados abaixo desse comando para amarelo, por exemplo. Vamos testar agora o desenho de uma simples linha amarela no editor a partir do centro até um ponto a 10 unidades de distância no eixo X, ou seja, X+10. A implementação ficará assim:

6
1
void OnDrawGizmos() {
2
    Gizmos.color = Color.yellow;
3
    Vector3 centro = transform.position;
4
    Vector3 final_da_linha = new Vector3 (centro.x + 10, centro.y, centro.z);
5
    Gizmos.DrawLine (centro, final_da_linha);
6
}

Repare que o centro é a posição atual do GameObject com o script anexado (transform.position) e a variável final_da_linha é criada como um novo Vector3 com as mesmas posições do centro, porém com o valor do eixo X adicionado de 10 unidades. Logo após usamos o comando Gizmos.DrawLine(centro, final_da_linha) para desenhar uma linha entre esses dois pontos. Salve o script e volte ao Unity. Você verá uma linha amarela desenhada a partir do centro do IntanciarPrefabs com 10 unidades de tamanho, mesmo sem executar o jogo, como na Figura 12. Legal, não é mesmo?

Figura 12 - Linha desenhada com Gizmos.DrawLine.
Linha desenhada com Gizmos.DrawLine.
Fonte: Captura de tela do Unity – Game Engine. Disponível em: https://unity3d.com/pt/. Acesso em: 21 de março de 2017.

Versão 5.3 - Todos os Direitos reservados