materiais e shaders e prefabs.prefabs.
Você,
Você, provavelmente, provavelmente, vai vai ouvir ouvir falar falar muito muito sobre sobre assetasset
pipeline. Assets são todos os tipos de arquivos de mídia que você
pipeline. Assets são todos os tipos de arquivos de mídia que você
pode importar para seu jogo. Pipeline (“encanamento”) é o fluxo de
pode importar para seu jogo. Pipeline (“encanamento”) é o fluxo de
produção ou importação destes assets e qual a melhor forma de
produção ou importação destes assets e qual a melhor forma de
fazê-lo.
fazê-lo.
Unity
Unity dá dá suporte suporte a a um um grande grande número número de de formatos: formatos: texturastexturas
direto do Photoshop (.psd), modelos direto do Blender (.blend),
direto do Photoshop (.psd), modelos direto do Blender (.blend),
modelos .fbx exportados 3Dmax/Maya, imagens diversas (jpg,
modelos .fbx exportados 3Dmax/Maya, imagens diversas (jpg,
bmp, png),
bmp, png), animações, áudios (wavanimações, áudios (wav, mp3, que podem ser testados, mp3, que podem ser testados
dentro do editor), fontes e outros tipos de modelos 3d.
dentro do editor), fontes e outros tipos de modelos 3d.
A
A importação importação pode pode ser ser feita feita diretamente, diretamente, apenas apenas arrastandoarrastando
o asset para a pasta do projeto dentro do Unity, ou através do
o asset para a pasta do projeto dentro do Unity, ou através do
menu Assets -> Import . A visualização é em tempo real, isto é, se
menu Assets -> Import . A visualização é em tempo real, isto é, se
um arquivo for editado fora da Uni
um arquivo for editado fora da Unityty, esta atualiza a cena d, esta atualiza a cena depois deepois de
alguns instantes.
alguns instantes.
Jogo de exemplo mostrado durante as aulas
I m p o r t a ç ã o e c r i a ç ã o d e a s s e t s
45 É importante saber como estes arquivos são criados fora
da Unity, mas não é propósito deste texto mostrar a criação dos mesmos.
Prefabs
Prefabs podem ser compreendidos como objetos que serão reutilizados na mesma cena, ou em diversas cenas diferentes, cuja utilização traz diversos benefícios. Quando criamos o prefab de uma pedra, por exemplo, podemos utilizar este mesmo modelo diversas vezes na cena. E, se por algum motivo for necessário alterar algum atributo dessa pedra, como o componente de colisão dela, em vez de atualizarmos individualmente cada uma das possíveis centenas de pedras na cena, podemos alterar somente o prefab, e este automaticamente atualiza todas as instâncias utilizadas em todas as cenas.
A utilização de prefabs não impede que cada instância do GameObject possua características e atributos únicos (posição e escala, por exemplo). Além das transformações, é possível alterar variáveis específicas de componentes do prefab.
Criando: Assets->Create->Prefab.
Definindo: apenas crie um gameobject comum e adicione os componentes que quiser. Estando pronto, arraste para cima do prefab.
Usando: agora arraste o prefab para a sua cena. Você pode apagar o gameobject original.
No código é possível se instanciar (criar) dinamicamente um prefab através de um comando específico, assim como é possível destruir um objeto:
Instantiate(nomePrefab, posicaoPrefab, rotacaoPrefab); Destroy(nomeGameObject);
U n i t y 3 D C a p í t u l o 8
U n i t y 3 D
48
Capítulo 8 - Interface
“Na natureza nada se cria, tudo se transforma” - Antoine Lavoisier, químico francês, 1743 - 1794
O que vamos aprender neste capítulo:
Neste capítulo, iremos ver como podemos criar interfaces simples para nosso jogo.
1.
GUI,
GUIText,
GUITexture,
GUISKin,
GUILayout
GUI é sigla para Graphical User Interface, interface gráfica com o usuário/jogador e tudo o que for usado para mostrar a situação do jogo, pontos, vidas e informações diversas.
Para criar interfaces temos diversos componentes de Unity, como GUIText e GUITexture que utilizaremos aqui em um exemplo simples.
Veja que existe uma função especial no código para chamar a interface: Chama-se OnGUI. Vamos utilizá-la:
I n t e r f a c e
49 Crie, deste modo, um objeto vazio na sua cena apenas para
receber o script de interface:
Lembre sempre de anexar seu script a pelo menos um objeto em cena.
Veja como vai ficar a interface (simples):
Aqui temos um texto no canto superior esquerdo da tela, um botão que exibe um texto e ativa algo quando apertado, no caso exibe uma mensagem no console, a janela de console aberta onde estas mensagens aparecem (normalmente fica minimizada no canto inferior esquerdo), a mensagem no console do apertar do botão junto com uma mensagem de erro automática (vide código a
seguir), e notamos que podemos pausar o andamento do nosso jogo e adiantar um pouco por vez usando os botões de play e
U n i t y 3 D
50
Vamos ao código para isso tudo, não se assustem.
Naquele script de interface, além do padrão que vem com ele, é isto o que deve entrar:
Aqui temos o método OnGUI, que é chamado sempre para mostrar as coisas na tela. Um GUILayout para escrever um texto (clássico) na tela, a criação de um botão em determinada posição com certo tamanho (é um retângulo) e um certo texto, que se apertado escreve um texto no console, dois atributos de textura para serem usados nestes botões (repare na imagem a seguir que as texturas public aparecem na interface da Unity e eu preciso arrastar texturas até lá)
I n t e r f a c e
51 Um teste para conferir se essas texturas (uma ao menos) foram
carregadas está na NÃO exibição de uma mensagem de erro no console; outro é a criação de botão usando uma dessas texturas que, se apertado, exibe uma mensagem no console de forma ligeiramente diferente.
Seja você programador ou não, aqui você acaba de fazer seu “Hello World” em código, seu primeiro código em C# / Unity !
U n i t y 3 D C a p í t u l o 9
U n i t y 3 D
54
Capítulo 9 -
Terrenos
“A beleza está nos olhos de quem vê” - Ditado popular
O que vamos aprender neste capítulo:
Neste capítulo, iremos ver como a Unity pode criar terrenos de forma fácil e rápida.