Nesta aula veremos os principais aspectos referentes ao ambiente Unity.
O conteúdo é dividido em pontos semelhantes para ajudar na leitura e localização do texto.
Abas
A interface do Unity é dividida em abas, e cada aba é destinada a mostrar informações ou opções diferentes. Através dessas informações e opções que podemos criar e manipular os elementos do nosso jogo, ou futuro jogo, como montar um personagem, trocar sprites, adicionar ou remover códigos, ou então testar as ações de uma mecânica.
Segue uma lista numerada das abas e qual a importância delas:
Scene: É a aba usada para criar e manipular os objetos do jogo, através do mouse e dos botões disponíveis na parte superior da tela (a);
Hierarchy: Mosta a lista de objetos existentes no Scene, e também permite acessar pela interface as informações dos objetos;
Inspector: Mostra quase toda informação dos objetos do Unity, além de algumas opções adicionais;
Project: Permite visualizar e manipular todos os assets do projeto (imagens, códigos, ou qualquer outro objeto usado na criação do jogo);
Console: Local onde aparecem os erros que podem ocorrer durante a produção do jogo;
Game: É tela do jogo na interface. Mostra a imagem do jogo enquanto edita, e também na hora de testa-lo.
GameObject: Lista os objetos nativos do Unity que podem ser usados dentro do ambiente;
Principais GameObjects
É muito comum no início do desenvolvimento de algum jogo, ou então num momento de estudo, que não tenhamos toda a arte do jogo já pronta, ou que esteja faltando algum objeto. Para não ficarmos empacados esperando uma arte chegar (ou cair do céu), uma prática comum é usar objetos temporários, como um retângulo para representar um personagem humanoide em pé.
O Unity trás consigo alguns objetos para servirem como temporários, ou para atender alguma outra necessidade. Eles podem ser criados na cena pela aba GameObject. São eles:
Create Empty: Cria um objeto vazio;
3D Object: Lista de objetos 3D, em formatos geométricos primitivos;
2D Object: Lista de objetos 2D, em formatos geométricos primitivos;
Light: Lista os objetos que emitem luz;
Audio: Lista os objetos que manipulam sons (fonte de som e receptor de som, por exemplo);
UI: lista os objetos de interface de usuário, por exemplo botões, campo de texto, barra de rolagem, etc.;
Camera: Cria uma câmera na cena. Um detalhe importante é que essa câmera se refere a que captura a imagem do jogo, se não houver câmera na cena, não aparecerá nenhuma imagem na aba Game;
Há ainda mais objetos na lista, contudo, são destinados a situações mais específicas, então veremos em outro momento.
Inspector
Quando clicamos em um objeto de cena (através do Scene ou do Hierarchy), as informações sobre esse objeto aparecem na aba Inspector. Essas informações se dividem em dois tipos: os Componentes e os atributos desses componentes.
Os Componentes são módulos que executam exclusivamente quando estão adicionados a um objeto. Eles são responsáveis por fazer um objeto executar uma ação.
Por exemplo, se queremos que um objeto tenha propriedades físicas (como gravidade, peso, velocidade, colisão), é necessário adicionar o componente Rigidbody nele, pois é esse o componente responsável por dar aos objetos essas propriedades.
Outro exemplo marcante é o componente Transform, ele é o responsável por dar e guardar informações geométricas, assim, para que um objeto tenha uma posição na cena (e no jogo), obrigatoriamente esse objeto precisa ter o componente Transform.
A seguir, vemos uma breve explicação dos principais componentes, usando uma esfera como exemplo de objeto:
Transform: Possui as informações de posição (position), rotação (para onde o objeto está virado – rotation), e escala (tamanho do objeto – scale);
Mesh Filter: Diz respeito a malha do objeto, ou seja, os vértices que dão forma ao objeto. Grosso modo, se objeto possui uma forma definida, o mesh filter é o componente que carrega essa informação;
Collider: É o componente que delimita a área de colisão do objeto, identificado na interface por linhas verdes;
Mesh Renderer: É o componente que desenha objeto na tela, assim, se ele for desativado ou excluído, o objeto some da tela. Uma coisa que vale ser lembrada é que apenas objetos com malha (mesh filter), podem ser desenhados.
Scene
É possível manipular a visão do Scene usando os botões do mouse para girar a tela, girar a câmera do Scene (não a do Game) e ajustar o zoom. Outra maneira, também, é mexendo nos eixos em forma de cruz no lado direito.
Manipulando um objeto
Anteriormente foi mencionado os botões no canto superior esquerdo, que podem manipular os objetos no Scene. Eles são:
a mão, que faz mexer a câmera do Scene;
a flecha, que ajuda a mover um objeto em um eixo especifico;
as setas, que ajudam a girar o objeto;
setas com quadrado, que ajudam a alterar o tamanho do objeto;
quadrado com um círculo dentro, que regula o tamanho de um Sprite (objeto 2d).
Câmera
Ao criar uma, por padrão, a Main Camera é um dos objeto que já estarão presentes no Hierarchy. Toda câmera é usada para capturar o mundo do jogo, portanto ela é como os olhos do jogador.
Um objeto câmera é um objeto que tem o componente Camera, o qual possui propriedades do tamanho da visão do jogo (o quanto da imagem do jogo pode ser visto), o modo de projeção perspectiva (que é possível ver profundidade) ou ortográfica (visão sem profundidade, como em jogos 2D).
Assim como outros objetos ela possui o componente Transform, e pode mudar de posição e girar (aumentar de tamanho também, mas não pelo scale).
Aba Game
Uma função muito legal no Unity é a capacidade de testar o jogo no próprio ambiente, sem a necessidade de exporta-lo. A aba Game é a que mostra a tela do jogo na visão do jogador.
Para testar usando o Game, o Unity possui 3 botões na sua interface: o Play, o Pause e o Next (que pula o jogo para o próximo frame). É possível também fazer alterações no jogo com o teste executando, contudo, uma vez que o usuário pare o teste, todas as alterações são desfeitas.
O primeiro ponto interessante é que as alterações na aba Scene ocorrem também na aba Game, mesmo sem o jogo estar rodando. O que pode acontecer é da imagem no Scene ser diferente da imagem do Game, isso porque, lembrando, o Scene é a tela de edição do cenário do jogo, e o Game é a visão do jogador.
Um outro ponto é que como toda imagem digital, o jogo possui uma resolução, e o mesmo se aplica ao Unity. Por padrão, a resolução vem no formato Free Aspect, mas é extremamente recomendado mudar a resolução para uma que seja igual a tela do computador, e jamais usar a Free Aspect.
Montar o jogo comparando a imagem do Scene com o Game é uma boa prática, pois como foi dito, a imagem do Game e do Scene podem não ser iguais (na verdade nunca são mesmo). Isso pode enganar o usuário, que monta o jogo de maneira desproporcional a resolução.
Pode ser visto na imagem a seguir que a cena foi montada sem preencher a tela toda do jogo, comparando com a imagem anterior (figura 3) aonde os objetos não deixam espaços.