tutorial unity 3d básico - felipe augusto
TRANSCRIPT
PUC-SPPontifícia Universidade Católica de São Paulo Curso Superior de Tecnologia em Jogos DigitaisDapartamento de Computação
Tutorial básico para a game engine
SP Pontifícia Universidade Católica de São Paulo
Curso Superior de Tecnologia em Jogos Digitais Dapartamento de Computação
Tutorial básico para a game engine
Unity 3D
Por Felipe Augusto de Oliveira Menezes
São Paulo Outubro de 2010
Pontifícia Universidade Católica de São Paulo
Tutorial básico para a game engine
Por Felipe Augusto de Oliveira Menezes
2 | P a g e
Sumário O que é Unity ................................................................................................................................ 4
Interface .................................................................................................................................... 5
1. Scene ............................................................................................................................. 5
2. Game ............................................................................................................................. 5
3. Project ........................................................................................................................... 5
4. Hierarchy ....................................................................................................................... 5
5. Inspector ....................................................................................................................... 5
6. Animation ...................................................................................................................... 6
Ferramentas da interface utilizáveis no painel Scene ........................................................... 6
Criando um novo projeto .............................................................................................................. 8
Criando um Terrain ................................................................................................................... 9
Pintando o terreno .............................................................................................................. 11
Adicionando água ................................................................................................................ 12
Adicionando luz ................................................................................................................... 13
Adicionando First Person Controller ................................................................................... 13
Adicionando Skybox ............................................................................................................ 14
Criando o labirinto ...................................................................................................................... 14
Criando um muro: Materials e Prefabs ................................................................................... 14
Materials ............................................................................................................................. 15
Prefabs................................................................................................................................. 17
Criando a avalanche .................................................................................................................... 19
Criando uma rocha .................................................................................................................. 19
Interação com o jogador: GUI e Script .................................................................................... 20
GUI ....................................................................................................................................... 20
Script ................................................................................................................................... 21
Áudio ....................................................................................................................................... 24
Script ................................................................................................................................... 24
Partículas ..................................................................................................................................... 25
Fogueira ................................................................................................................................... 27
Importando unitypackages ................................................................................................. 27
Fogo ..................................................................................................................................... 27
Áudio ....................................................................................................................................... 29
Animação ..................................................................................................................................... 29
3 | P a g e
Script ....................................................................................................................................... 31
GUI ............................................................................................................................................... 32
Script ....................................................................................................................................... 33
Exportando o jogo ....................................................................................................................... 35
Referências Bibliográficas ........................................................................................................... 37
4 | P a g e
O que é Unity
Unity é uma ferramenta de criação e edição de
foco em jogos tridimensionais, é possível também o
Há versões para Mac e Windows, com a possibilidade de criação para diversas plataformas:
Windows, Mac, Wii, iPad, iPhone, browser e, suporte recentemente adicionado para Xbox 360
e PlayStation 3.
Hoje há duas licensas disponíveis, a
diversas características adicionais.
Este curso utilizará a licensa grátis,
http://unity3d.com/unity/
Unity é uma ferramenta de criação e edição de games, ou seja, uma game engine
foco em jogos tridimensionais, é possível também o desenvolvimento de jogos bidimensionais.
Há versões para Mac e Windows, com a possibilidade de criação para diversas plataformas:
Windows, Mac, Wii, iPad, iPhone, browser e, suporte recentemente adicionado para Xbox 360
as disponíveis, a Unity e a Unity Pro. A primeira é grátis e a segunda possui
diversas características adicionais.
Este curso utilizará a licensa grátis, Unity.
engine. Apesar do
desenvolvimento de jogos bidimensionais.
Há versões para Mac e Windows, com a possibilidade de criação para diversas plataformas:
Windows, Mac, Wii, iPad, iPhone, browser e, suporte recentemente adicionado para Xbox 360
. A primeira é grátis e a segunda possui
5 | P a g e
Interface Por default, a Unity abre o projeto Island Demo, que é uma demostração das capacidades da
engine nesse estado inicial. Antes de começarmos nosso próprio projeto, veremos algumas
características da interface da Unity nessa demo.
A Unity é organizada por tabs, ou painéis, cada uma com funções específicas e características
diferentes.
1. Scene É o painel onde mostra o arquivo de cena selecionado. Pode-se selecionar objetos visíveis e
editá-los manualmente por este painel.
a. View
i. Texture/Wireframe: alterna entre a visão de textura (padrão) e wireframe, ou ambos.
ii. Draw: alterna entre a visão RGB (padrão), Alpha, Overdraw e Mipmaps.
b. Light: ativa ou desativa a vizualização de luzes na cena. c. Camera effects: ativa ou desativa a vizualização dos efeitos de câmera na
cena.
2. Game Painel de demostração e verificação do jogo quando o botão Play está ativado.
•••• Aspect: altera a resolução da vizualização do game.
•••• Maximize on Play: maximiza o painel Game quando o botão Play está ativado.
•••• Gizmos: ferramenta de debug que mostra, por exemplo, posição de luzes e
wireframe de objetos.
•••• Stats: ativa ou desativa a visualização de estatísticas da cena.
3. Project Este painel contém a lista de arquivos e pastas inclusos no projeto. Lista as cenas, arquivos de
imagens, som, animações, códigos, etc.
a. Create: menu de opções de criação de pasta e arquivos diversos: scripts, materiais, animações, prefabs.
4. Hierarchy Contém a lista de objetos e grupos de objetos dentro da cena, seja ele visível ou não. Pode-se
somente selecionar objetos (ou grupos de objetos) neste painel.
5. Inspector Mostra as informações do objeto ou grupo de objeto selecionado, caso haja um. É possível
editar a posição, escala e rotação, além dos componentes adicionais atribuídos ao objeto ou
grupo.
6 | P a g e
6. Animation Por padrão, este painel não aparece na interface da Unity inicialmente. Sua função é
na timeline, animações de objetos ou grupos, ou características destes, inclusos na cena sendo
editada.
a. Record: ativa ou desativa a gravação de animações
b. Play: reproduz a animação do objeto selecionado.
c. Previous/Next Frame
Todo painel na Unity pode ser removido
menu Window na barra de menus superior.
cada painel.
Outra característica user friendly
Window > Layouts há a opção de salvar o formato da interface atual, além de quatro layouts
pré-definidos.
Ferramentas da interface utilizáveis
Hand Tool (Q)
1. Botão esquerdo do mouse
câmera atual. 2. Botão direito do mouse/scroll
3. Alt + botão esquerdo do mouse
Move Tool (W)
Move o objeto(s) selecionado(s) nos eixos
Rotate Tool (E)
Rotaciona o(s) objeto(s) selecionado(s) nos eixos
Por padrão, este painel não aparece na interface da Unity inicialmente. Sua função é
objetos ou grupos, ou características destes, inclusos na cena sendo
ativa ou desativa a gravação de animações do objeto selecionado
: reproduz a animação do objeto selecionado.
Previous/Next Frame: vai para o anterior/próximo frame na timeline.
Todo painel na Unity pode ser removido ou adicionado da interface. Para isso, acessa
na barra de menus superior. Também é possível alterar a posição e tamanho
friendly da Unity é a possibilidade da customização da interface. Em
há a opção de salvar o formato da interface atual, além de quatro layouts
da interface utilizáveis no painel Scene
Botão esquerdo do mouse: permite a exploração da cena nos eixos
Botão direito do mouse/scroll: zoom no centro da câmera atual. Alt + botão esquerdo do mouse: rotação em torno do centro da câmera atual.
Move o objeto(s) selecionado(s) nos eixos X, Y e Z.
Rotaciona o(s) objeto(s) selecionado(s) nos eixos X, Y e Z.
Por padrão, este painel não aparece na interface da Unity inicialmente. Sua função é mostrar,
objetos ou grupos, ou características destes, inclusos na cena sendo
do objeto selecionado.
vai para o anterior/próximo frame na timeline.
. Para isso, acessa-se o
posição e tamanho de
da Unity é a possibilidade da customização da interface. Em
há a opção de salvar o formato da interface atual, além de quatro layouts
permite a exploração da cena nos eixos X e Y da
: rotação em torno do centro da câmera atual.
7 | P a g e
Scale Tool (R)
Altera a escala do(s) objeto(s) selecionado(s) nos eixos
Câmeras
Para alterar o modo de visualização a
seguinte botão, encontrado somente no painel Scene:
A visualização padrão é a Perspective (
eixo desejado:
Eixo (clicável)
X
-X
Y
-Y
Z
-Z
Centro
Altera a escala do(s) objeto(s) selecionado(s) nos eixos X, Y e Z.
Para alterar o modo de visualização a Unity dispõe de uma ferramenta bastante prática, o
seguinte botão, encontrado somente no painel Scene:
A visualização padrão é a Perspective (Persp, abaixo da ferramenta). Para alterá-la clica
(clicável) Visualização
Direita (Right)
Esquerda (Left)
Cima (Top)
Abaixo (Bottom)
Frente (Front)
Trás (Back)
Perspectiva (Persp)
Unity dispõe de uma ferramenta bastante prática, o
la clica-se no
8 | P a g e
Criando um novo projeto Para criar um novo projeto, acesse na barra de menus superior o menu
seguinte janela aparecerá:
Packages são pacotes de arquivos que serão utilizados no projeto. São os arquivos que
aparecem no painel Project, após criado o projeto. O
padrão da Unity. O Toon Shading
utilizaremos somente o Standard Assets.
como quiser. A Unity então, importará os pacotes selecionados e, enfim, abrirá o seu novo
projeto.
Criando um novo projeto
acesse na barra de menus superior o menu File > New Project...
são pacotes de arquivos que serão utilizados no projeto. São os arquivos que
aparecem no painel Project, após criado o projeto. O Standard Assets possui os arquivos
Toon Shading possui materiais em cel shading, ou cartunizado.
utilizaremos somente o Standard Assets. Indique o caminho desejado e nomeie o projeto
A Unity então, importará os pacotes selecionados e, enfim, abrirá o seu novo
File > New Project.... A
são pacotes de arquivos que serão utilizados no projeto. São os arquivos que
possui os arquivos
, ou cartunizado. Neste caso
Indique o caminho desejado e nomeie o projeto
A Unity então, importará os pacotes selecionados e, enfim, abrirá o seu novo
9 | P a g e
Criando um Terrain Na barra de menus superior, acesse no menu
Note que o terreno foi adicionado no painel Hierarchy, com o nome de Terrain. Você pode
renomeá-lo como desejar no painel Inspector, a
que o terreno também foi criado no painel Project, com o nome New Terrain. Para renomeá
lo, selecione-o e aperte F2.
O terreno criado possui as propriedades
Resolution. A seguinte janela deve aparecer:
Iremos alterar somente o comprimento do terreno para este projeto. Altere o valor do item
Terrain Lenght para isso. Terrain Width
do terreno, mas não os utilizaremo
A ferramenta Terrain > Flatten Heightmap
valor definido. Para este projeto foi utilizado o valor 20.
Selecionado o terreno na Hierarchy, aparecerá no Inspector, o seguinte componente e
ferramentas:
Na barra de menus superior, acesse no menu Terrain > Create Terrain para criar um terreno
Note que o terreno foi adicionado no painel Hierarchy, com o nome de Terrain. Você pode
lo como desejar no painel Inspector, após selecioná-lo na Hierarchy. Note também
que o terreno também foi criado no painel Project, com o nome New Terrain. Para renomeá
O terreno criado possui as propriedades padrões. Para alterá-las acesse o menu Terrain > Set
seguinte janela deve aparecer:
Iremos alterar somente o comprimento do terreno para este projeto. Altere o valor do item
Terrain Width altera a largura e Terrain Height altera a altura máxima
mas não os utilizaremos agora.
Terrain > Flatten Heightmap eleva o ponto inicial no eixo Y do terreno para o
valor definido. Para este projeto foi utilizado o valor 20.
Selecionado o terreno na Hierarchy, aparecerá no Inspector, o seguinte componente e
para criar um terreno.
Note que o terreno foi adicionado no painel Hierarchy, com o nome de Terrain. Você pode
lo na Hierarchy. Note também
que o terreno também foi criado no painel Project, com o nome New Terrain. Para renomeá-
Terrain > Set
Iremos alterar somente o comprimento do terreno para este projeto. Altere o valor do item
altera a altura máxima
inicial no eixo Y do terreno para o
Selecionado o terreno na Hierarchy, aparecerá no Inspector, o seguinte componente e
10 | P a g e
Da esquerda para a direira, as ferramentas são as seguintes:
• Raise / Lower Terrain: eleva e diminui o terreno. Para diminuir, segure a tecla use o botão esquerdo do mouse.
•••• Brush Size: altera o tamanho do pincel selecionado.mouse no painel Scene para aplicar.
•••• Opacity: força que será aplicada no pincel.
• Paint Height: esta ferramenta eleva o terreno até a altura definida, conforme a força (opacity).
•••• Height: altera a altura (máximo igual à
• Smooth Height: alisa o terreno (cálculo de média entre os pontos da área do pincel).
• Paint Texture: pinta o terreno com a textura selecionada.
•••• Target Strenght:
• Place Trees: cria árvores no terreno. Segure a tecla
•••• Tree Density: densidade (proximidade e quantidade) das árvores.
•••• Color Variation:
•••• Tree Height: altera a altura dai. Variation:
•••• Tree Width: altera a largura da ái. Variation:
• Paint Details: cria grama, pedras e outros detalhes no terreno. Segure a tecla para deletá-los.
•••• Target Strenght:
• Settings for Terrain: configurações do terreno.distância para detalhes (Também pode-se alterar características do vento.
Crie o terreno que desejar, faça algo parecido com o meu resultado, ou use
de sua escolha, faça uma montanha com um buraco no meio, como a montanha superior
esquerda na imagem a seguir. Dela, faremos sair fumaça para dar a idéia de um vulcão.
Da esquerda para a direira, as ferramentas são as seguintes:
: eleva e diminui o terreno. Para diminuir, segure a tecla use o botão esquerdo do mouse.
altera o tamanho do pincel selecionado. Use o botão esquerdomouse no painel Scene para aplicar.
força que será aplicada no pincel.
esta ferramenta eleva o terreno até a altura definida, conforme a força
altera a altura (máximo igual à Terrain Height em Set Resolution
alisa o terreno (cálculo de média entre os pontos da área do pincel).
pinta o terreno com a textura selecionada.
Target Strenght: força que a textura será aplicada sobre outra textura.
cria árvores no terreno. Segure a tecla Shift para deletar árvores.
densidade (proximidade e quantidade) das árvores.
Color Variation: variação na cor das árvores.
altera a altura da árvore. Variation: variação da altura das árvores.
altera a largura da árvore. Variation: variação da largura das árvores.
cria grama, pedras e outros detalhes no terreno. Segure a tecla
Target Strenght: quantidade que será aplicada do detalhe selecionado.
configurações do terreno. Aqui pode-se alterar valores de distância para detalhes (Level Of Detail, ou LOD), como árvores, texturas e grama.
se alterar características do vento.
terreno que desejar, faça algo parecido com o meu resultado, ou use-o. Independente
de sua escolha, faça uma montanha com um buraco no meio, como a montanha superior
esquerda na imagem a seguir. Dela, faremos sair fumaça para dar a idéia de um vulcão.
: eleva e diminui o terreno. Para diminuir, segure a tecla Shift e
Use o botão esquerdo do
esta ferramenta eleva o terreno até a altura definida, conforme a força
Set Resolution)
alisa o terreno (cálculo de média entre os pontos da área do pincel).
outra textura.
para deletar árvores.
cria grama, pedras e outros detalhes no terreno. Segure a tecla Shift
aplicada do detalhe selecionado.
se alterar valores de , como árvores, texturas e grama.
Independente
de sua escolha, faça uma montanha com um buraco no meio, como a montanha superior
esquerda na imagem a seguir. Dela, faremos sair fumaça para dar a idéia de um vulcão.
11 | P a g e
Pintando o terreno Para pintar o terreno, primeiro precisamos do material a ser pintado. A Unity já dispõe de
alguns e nos utilizaremos deles.
Após selecionado o terreno, selecione a ferramenta Paint Texture no Inspector. No campo
Textures não há nada selecionado e, por causa disso, não há como pintar o terreno. Adicione
texturas por clicar no botão Edit Textures... > Add Textures...
Surgirá uma nova janela, Add Terrain Texture
No item Splat, selecione o arquivo
Add o terreno estará todo pintado da textura selecionada, pois é a
Repita o processo de adicionar texturas para adicionar as seguintes daquela mesma lista:
(Hill), GrassRock e GoodDirty.
Selecione a textura desejada e pinte o terreno como quiser. Lembre
do item Target Strengh é possível misturar texturas.
Para pintar o terreno, primeiro precisamos do material a ser pintado. A Unity já dispõe de
Após selecionado o terreno, selecione a ferramenta Paint Texture no Inspector. No campo
ecionado e, por causa disso, não há como pintar o terreno. Adicione
Edit Textures... > Add Textures....
Add Terrain Texture:
selecione o arquivo Cliff (Layered Rock), como na imagem. Ao clicar no botão
o terreno estará todo pintado da textura selecionada, pois é a única textura definida.
Repita o processo de adicionar texturas para adicionar as seguintes daquela mesma lista:
a textura desejada e pinte o terreno como quiser. Lembre-se que alterando o valor
é possível misturar texturas.
Para pintar o terreno, primeiro precisamos do material a ser pintado. A Unity já dispõe de
Após selecionado o terreno, selecione a ferramenta Paint Texture no Inspector. No campo
ecionado e, por causa disso, não há como pintar o terreno. Adicione
a imagem. Ao clicar no botão
única textura definida.
Repita o processo de adicionar texturas para adicionar as seguintes daquela mesma lista: Grass
se que alterando o valor
12 | P a g e
O mesmo processo é realizado para definir árvores e detalhes. Entretanto, só há uma árvore
disponível na licensa grátis, a Palm
> Add Grass Texture > Detail Texture > Grass
Há um outro artifício para criação de árvores na Unity.
ferramenta automaticamente distribui pelo terreno
A seguir, a minha versão do terreno anterior com árvores e grama
último).
Adicionando água No painel Project, procure por “water”, aparecerão vários resultados. Selecione o prefab
Daylight Simple Water, e o arraste para a Scene. Ou, se preferir, o item
Water.
Com a ferramenta Scale Tool, aumente o tamanhodo objeto e, com a ferramenta Move Tool,
posicione conforme achar necessário.
O mesmo processo é realizado para definir árvores e detalhes. Entretanto, só há uma árvore
Palm. E também um único item para detalhes, acesse
> Add Grass Texture > Detail Texture > Grass.
Há um outro artifício para criação de árvores na Unity. Em Terrain > Mass Places Trees
menta automaticamente distribui pelo terreno o número definido de árvores.
A seguir, a minha versão do terreno anterior com árvores e grama (não é possível visualizar o
No painel Project, procure por “water”, aparecerão vários resultados. Selecione o prefab
, e o arraste para a Scene. Ou, se preferir, o item Nighttime Simple
Com a ferramenta Scale Tool, aumente o tamanhodo objeto e, com a ferramenta Move Tool,
posicione conforme achar necessário.
O mesmo processo é realizado para definir árvores e detalhes. Entretanto, só há uma árvore
. E também um único item para detalhes, acesse Edit Details
Terrain > Mass Places Trees, essa
(não é possível visualizar o
No painel Project, procure por “water”, aparecerão vários resultados. Selecione o prefab
Nighttime Simple
Com a ferramenta Scale Tool, aumente o tamanhodo objeto e, com a ferramenta Move Tool,
13 | P a g e
Adicionando luz Na barra de menus superior, clique no menu GameObject. Tudo que for um objeto dentro do
jogo, seja ele visível ou não para o jogador, está neste menu. Acesse
Other > Directional Light.
Directional Light é uma luz direcional e infinita, portanto, pode
criada, e apenas rotacionarmos ela.
Adicionando First Person Controller No painel Project, procure por
resultado da pesquisa.
Selecione-o e o arraste para o painel
Console, na barra inferior da interface do software.
Esse aviso é dado pois, no painel Hierarchy,
ter somente um por cena. Um deles está dentro da Hierarchy e o outro dentro do First Person
Controller. Delete a Main Camera
dela.
Na Hierarchy selecione o First Person Controller, coloque o mouse sobre o painel Scen
pressione a tecla F para focar a câmera no objeto.
Vê-se que o objeto está cortado pelo terreno e, se dermos play agora, o objeto cairá. Para que
isso não ocorra, vá no painel Inspector e altere a posição sua posição conforme necessário, ou
então mova o objeto com a ferramenta Move até ele estar acima o suficiente do terreno.
Então, dê play.
Se achar que o mapa está demasiado grande para a velocidade da personagem, selecione o
First Person Controller na Hierarchy e, no Inspector, no componente
o item Speed. Pode-se alterar também o
, clique no menu GameObject. Tudo que for um objeto dentro do
jogo, seja ele visível ou não para o jogador, está neste menu. Acesse GameObject > Create
Directional Light é uma luz direcional e infinita, portanto, pode-se deixá-la no ponto em que foi
criada, e apenas rotacionarmos ela.
Adicionando First Person Controller
No painel Project, procure por First Person Controller, ao digitar “first” já haverá um único
o e o arraste para o painel Hierarchy. Assim que feito, a Unity dará um aviso no
Console, na barra inferior da interface do software. Para abrí-lo basta clicar na barra.
Esse aviso é dado pois, no painel Hierarchy, há agora dois objetos Main Camera há e deve
Um deles está dentro da Hierarchy e o outro dentro do First Person
Delete a Main Camera fora do First Person Controller, pois não nos utilizaremos
Na Hierarchy selecione o First Person Controller, coloque o mouse sobre o painel Scen
pressione a tecla F para focar a câmera no objeto.
se que o objeto está cortado pelo terreno e, se dermos play agora, o objeto cairá. Para que
isso não ocorra, vá no painel Inspector e altere a posição sua posição conforme necessário, ou
o objeto com a ferramenta Move até ele estar acima o suficiente do terreno.
Se achar que o mapa está demasiado grande para a velocidade da personagem, selecione o
First Person Controller na Hierarchy e, no Inspector, no componente FPSWalker (Script)
se alterar também o Jump Speed e Gravity.
, clique no menu GameObject. Tudo que for um objeto dentro do
GameObject > Create
no ponto em que foi
, ao digitar “first” já haverá um único
Hierarchy. Assim que feito, a Unity dará um aviso no
lo basta clicar na barra.
há e deve-se
Um deles está dentro da Hierarchy e o outro dentro do First Person
, pois não nos utilizaremos
Na Hierarchy selecione o First Person Controller, coloque o mouse sobre o painel Scene e
se que o objeto está cortado pelo terreno e, se dermos play agora, o objeto cairá. Para que
isso não ocorra, vá no painel Inspector e altere a posição sua posição conforme necessário, ou
o objeto com a ferramenta Move até ele estar acima o suficiente do terreno.
Se achar que o mapa está demasiado grande para a velocidade da personagem, selecione o
(Script) altere
14 | P a g e
Adicionando Skybox Com o objeto Main Camera selecionado, dentro do First Person Controller, note o componente
Camera no Inspector. O primeiro item listado,
mostrado, conforme definido no componente
Entratanto esse objeto não possui um componente Skybox. Adicione um acessando
Component > Rendering > Skybox
Como padrão, o componente Skybox não possui material definido. Escolha no item
Skybox o céu desejado; os que já vem incluso nessa licensa da Unity são:
Criando o labirinto
Criando um muro: Materials
Para criarmos o muro utilizaremos o objeto cubo da própria Unity. Crie
GameObject > Create Other > Cube
para focar nele.
Com o objeto Main Camera selecionado, dentro do First Person Controller, note o componente
no Inspector. O primeiro item listado, Clear Flags, corresponde ao céu que será
mostrado, conforme definido no componente Skybox.
não possui um componente Skybox. Adicione um acessando
Component > Rendering > Skybox, enquanto a Main Camera está selecionada na Hierarchy.
drão, o componente Skybox não possui material definido. Escolha no item
o céu desejado; os que já vem incluso nessa licensa da Unity são: Blue Sky e
Materials e Prefabs
utilizaremos o objeto cubo da própria Unity. Crie-o ao acessar
GameObject > Create Other > Cube, um cubo deve aparecer na tela, senão aperte a tecla F
Com o objeto Main Camera selecionado, dentro do First Person Controller, note o componente
, corresponde ao céu que será
não possui um componente Skybox. Adicione um acessando
, enquanto a Main Camera está selecionada na Hierarchy.
drão, o componente Skybox não possui material definido. Escolha no item Custom
e Sunset.
o ao acessar
, um cubo deve aparecer na tela, senão aperte a tecla F
15 | P a g e
No Inspector ou com a ferramenta Scale Tool, altere a escala do objeto conforme achar
necessário. Entretanto nosso muro possui muito pouco interesse, por isso, adicionaremos
textura a ele.
Materials No Project, em Create > Folder, crie uma pasta chamada Materials
do projeto, a pasta Muro dentro desta
Importaremos uma textura, mas para isso precisamos antes do arquivo de textura. Você pode
utilizar o mesmo que utilizei ou procurar imagens em diversos sites, muitos gratuitos.
CGTextures (www.cgtextures.com
interessar mais que minha opção.
resolução quadrada (256x256, 512x512, etc.).
Escolhida a textura, clique com o botão direito do mouse em cima da pasta
Acesse Import New Asset e escolha o diretório do arquivo desejado, ou simplesmente arraste o
arquivo da pasta original para a pasta
Carregado o arquivo (“Bricks” na imagem acima)
visualizada no Inspector ao ser selecionad
Na pasta Muro, acesse Create no painel Project ou com o botão direito sobre a pasta.
Material criará um novo arquivo chamado
No Inspector pode-se ver que o novo material não há textura, como padrão. Arraste o textura
importada anteriormente (“bricks”) para a
desejada. No Preview poderá ser visualizado a textura aplicada na esf
forma do objeto por clicar no botão esquerdo na aba
No Inspector ou com a ferramenta Scale Tool, altere a escala do objeto conforme achar
cessário. Entretanto nosso muro possui muito pouco interesse, por isso, adicionaremos
, crie uma pasta chamada Materials e, para melhor organização
, a pasta Muro dentro desta.
ma textura, mas para isso precisamos antes do arquivo de textura. Você pode
utilizar o mesmo que utilizei ou procurar imagens em diversos sites, muitos gratuitos.
www.cgtextures.com) é o que utilizei, e há diversas outras texturas que podem te
interessar mais que minha opção. Lembre-se de utilizar somente arquivos de texturas de
resolução quadrada (256x256, 512x512, etc.).
Escolhida a textura, clique com o botão direito do mouse em cima da pasta Muro que criamos.
e escolha o diretório do arquivo desejado, ou simplesmente arraste o
arquivo da pasta original para a pasta Muro na Unity.
” na imagem acima), a textura estará dentro da pasta e pode ser
ao ser selecionada.
Na pasta Muro, acesse Create no painel Project ou com o botão direito sobre a pasta.
criará um novo arquivo chamado New Material, o nomeie de “muro”.
se ver que o novo material não há textura, como padrão. Arraste o textura
importada anteriormente (“bricks”) para a Main Color ou clique em Select e selecione a textura
poderá ser visualizado a textura aplicada na esfera. Você pode alterar a
forma do objeto por clicar no botão esquerdo na aba Preview.
No Inspector ou com a ferramenta Scale Tool, altere a escala do objeto conforme achar
cessário. Entretanto nosso muro possui muito pouco interesse, por isso, adicionaremos
, para melhor organização
ma textura, mas para isso precisamos antes do arquivo de textura. Você pode
utilizar o mesmo que utilizei ou procurar imagens em diversos sites, muitos gratuitos.
á diversas outras texturas que podem te
se de utilizar somente arquivos de texturas de
que criamos.
e escolha o diretório do arquivo desejado, ou simplesmente arraste o
a e pode ser
Na pasta Muro, acesse Create no painel Project ou com o botão direito sobre a pasta. Create >
se ver que o novo material não há textura, como padrão. Arraste o textura
e selecione a textura
Você pode alterar a
16 | P a g e
Arraste o material “muro” para o objeto Cube na Hierarchy ou mesmo na Scene. O material
cobrirá todo o objeto. Entretanto, esse material não parece possuir muito volume, e para
consertar isso, adicionaremos um
Importe novamente a mesma textura uti
o, fazendo menção que aquele arquivo é um bumpmap, por exemplo “Bricks_bump”.
Selecionado esse mesmo arquivo, no Inspector ative a opção
botão Apply. A Unity converterá o arquiv
O resultado será uma imagem com tons azulados, como a imagem abaixo. Note que no painel
Project o ícone do arquivo também
Arraste o material “muro” para o objeto Cube na Hierarchy ou mesmo na Scene. O material
cobrirá todo o objeto. Entretanto, esse material não parece possuir muito volume, e para
consertar isso, adicionaremos um bumpmap.
Importe novamente a mesma textura utilizada na Main Color do material “muro”.
, fazendo menção que aquele arquivo é um bumpmap, por exemplo “Bricks_bump”.
Selecionado esse mesmo arquivo, no Inspector ative a opção Generate Bumpmap
A Unity converterá o arquivo atual para bumpmap.
O resultado será uma imagem com tons azulados, como a imagem abaixo. Note que no painel
também foi alterado.
Arraste o material “muro” para o objeto Cube na Hierarchy ou mesmo na Scene. O material
cobrirá todo o objeto. Entretanto, esse material não parece possuir muito volume, e para
material “muro”. Renomeie-
, fazendo menção que aquele arquivo é um bumpmap, por exemplo “Bricks_bump”.
e clique no
O resultado será uma imagem com tons azulados, como a imagem abaixo. Note que no painel
17 | P a g e
De volta para o material “muro”, na opção
item Bumpmap (RGB) aparecerá. Selecione o arquivo de textura convertida para bumpmap
para este item.
Prefabs Utilizaremos mais de um muro no nosso projeto,
texturização, por exemplo, a Unity possui um artifício facilitador, os
arquivo com propriedades e componentes padronizados por aquele que o criou, podendo
existir mais de um simultaneamente na mes
Vamos para a prática.
Por adicionar o material ao muro, ele deve ter resultado em algo parecido com isso:
Faremos um prefab desse muro. Primeiro, caso o nome do objeto ainda seja “
renomeie-o de “Muro” no Inspector.
De volta para o material “muro”, na opção Shader, no Inspector, selecione Bump Diffuse
aparecerá. Selecione o arquivo de textura convertida para bumpmap
Utilizaremos mais de um muro no nosso projeto, e para não repetir esse processo de
texturização, por exemplo, a Unity possui um artifício facilitador, os prefabs. Um prefab é um
arquivo com propriedades e componentes padronizados por aquele que o criou, podendo
existir mais de um simultaneamente na mesma cena, e ainda, configuráveis individualmente.
Por adicionar o material ao muro, ele deve ter resultado em algo parecido com isso:
Faremos um prefab desse muro. Primeiro, caso o nome do objeto ainda seja “
no Inspector. Após verificado isso, no Project crie uma pasta chamada
Bump Diffuse. O
aparecerá. Selecione o arquivo de textura convertida para bumpmap
e para não repetir esse processo de
. Um prefab é um
arquivo com propriedades e componentes padronizados por aquele que o criou, podendo
ma cena, e ainda, configuráveis individualmente.
Por adicionar o material ao muro, ele deve ter resultado em algo parecido com isso:
Faremos um prefab desse muro. Primeiro, caso o nome do objeto ainda seja “Cube”,
Após verificado isso, no Project crie uma pasta chamada
18 | P a g e
Prefabs. Dentro desta pasta, crie um prefab ao acessar
será criado. Note que ao selecioná
Arraste o objeto “Muro” na Hierarchy para cima do
possui todos os componentes do muro que foi adicionado e pode ser visualizado no aba
Preview no Inspector. Renomeie esse prefab de “muro” também.
Está pronto o prefab. Qualquer momento que for desejável um novo muro na cena,
simplesmente arraste esse prefab para o painel Scene ou Hierarchy. O novo muro será criado
com as mesmas características que o original adicionado ao prefab, inclusive posição.
Pode-se deletar o antigo muro, o objeto “Muro”
armazenadas e poderá ser criada cópias.
Como criaremos vários muros para elaboração de um pequeno labirinto
na Hierarchy e agrupe todos os muros lá, para melhor organi
GameObject > Create Empty para criar o objeto
Crie esse objeto nulo na posição
Todo muro que for adicionado à cena atual,
labirinto final:
Dentro desta pasta, crie um prefab ao acessar Create > Prefab, e o arquivo
será criado. Note que ao selecioná-lo, nada aparece no Inspector, pois é um objeto vazio
Arraste o objeto “Muro” na Hierarchy para cima do new prefab. Note que agora esse prefab
possui todos os componentes do muro que foi adicionado e pode ser visualizado no aba
Renomeie esse prefab de “muro” também.
b. Qualquer momento que for desejável um novo muro na cena,
simplesmente arraste esse prefab para o painel Scene ou Hierarchy. O novo muro será criado
com as mesmas características que o original adicionado ao prefab, inclusive posição.
ntigo muro, o objeto “Muro”, o prefab continuará com as informações
armazenadas e poderá ser criada cópias.
Como criaremos vários muros para elaboração de um pequeno labirinto, crie um objeto nulo
na Hierarchy e agrupe todos os muros lá, para melhor organização do projeto. Acesse
para criar o objeto GameObject e o renomeie como “labirinto”.
Crie esse objeto nulo na posição 0, 0, 0 para não haver problemas com posição global e local.
Todo muro que for adicionado à cena atual, arraste-o para dentro deste objeto.
, e o arquivo new prefab
lo, nada aparece no Inspector, pois é um objeto vazio.
Note que agora esse prefab
possui todos os componentes do muro que foi adicionado e pode ser visualizado no aba
b. Qualquer momento que for desejável um novo muro na cena,
simplesmente arraste esse prefab para o painel Scene ou Hierarchy. O novo muro será criado
com as mesmas características que o original adicionado ao prefab, inclusive posição.
, o prefab continuará com as informações
, crie um objeto nulo
zação do projeto. Acesse
e o renomeie como “labirinto”.
para não haver problemas com posição global e local.
o para dentro deste objeto. Eis meu
19 | P a g e
Criando a avalanche As pedras cairão das montanhas e, em determinado ponto essas pedras devem parar. Por isso
agora há algumas curvas e posições
subida terminada numa depressão
Criando uma rocha Para criar uma pedra, criaremos uma esfera acessando o menu
Sphere. Aumente o tamanho dessa esfera para um valor desejado no c
no Inspector; 10, 10, 10 pode ser
Precisamos criar um material para essa pedra. No painel Project, dentro da pasta Materials,
crie outra pasta com o nome “Pedra”. Procure por uma textura de rocha, ou use a mesma que
utilizei nesse projeto e importe-
textura “Pedra” e importe-a novamente para gerar o bumpmap, nomeado de “Pedra_bump”,
por exemplo.
Ao gerar o bumpmap, reduza o
algo mais desgastado.
Crie um novo material na mesma
Então aplique o material sobre a esfera (
As pedras cairão das montanhas e, em determinado ponto essas pedras devem parar. Por isso
agora há algumas curvas e posições estratégicas nas montanhas e o caminho inicial é uma
subida terminada numa depressão repentina.
Para criar uma pedra, criaremos uma esfera acessando o menu GameObject > Create Other >
. Aumente o tamanho dessa esfera para um valor desejado no componente Transform
pode ser uma boa opção.
criar um material para essa pedra. No painel Project, dentro da pasta Materials,
crie outra pasta com o nome “Pedra”. Procure por uma textura de rocha, ou use a mesma que
-a para essa pasta, para podermos criar o material.
a novamente para gerar o bumpmap, nomeado de “Pedra_bump”,
Ao gerar o bumpmap, reduza o Bumpiness, senão a rocha parecerá afiada demais e queremos
mesma pasta e aplique as duas texturas como feito anteriormente.
Então aplique o material sobre a esfera (Sphere). O resultado deve ser algo assim:
As pedras cairão das montanhas e, em determinado ponto essas pedras devem parar. Por isso
nas montanhas e o caminho inicial é uma
GameObject > Create Other >
omponente Transform
criar um material para essa pedra. No painel Project, dentro da pasta Materials,
crie outra pasta com o nome “Pedra”. Procure por uma textura de rocha, ou use a mesma que
a para essa pasta, para podermos criar o material. Nomeie a
a novamente para gerar o bumpmap, nomeado de “Pedra_bump”,
, senão a rocha parecerá afiada demais e queremos
aplique as duas texturas como feito anteriormente.
20 | P a g e
Antes de criarmos o prefab, precisamos adicionar física a esta rocha, pois se testarmos o jogo
agora, ela estará flutuando, parada no espaço. Selecione
Component > Physics > Rigidbody
Inspector. Ao testar o jogo agora, verá que a rocha é afetada por gravidade e se move
conforme o solo.
Assim feito, na pasta Prefabs criada anteriormente, crie um novo prefab chamado “pedra” e
adicione a esfera a ele, pois teremos mais de uma rocha.
Crie um objeto nulo para agrupar as pedras e posicione
cada objeto pode ser individualmente alterado para caso queira rochas de dimensões
diferentes.
Interação com o jogador: Nossas rochas caem das montanhas, colidem umas com as outras e com a personagem
não há desafio para o jogador a não ser que criemos algum limita
ou quantidade de vidas. E é isso que faremos.
GUI Primeiramente, GUI (Graphical User Interface
exemplo uma barra de vida.
Utilizaremos as imagens que vem junto a este projeto ou,
próprias, lembre-se somente de nomeá
quando formos programar.
No painel Project, crie a pasta “GUI” e dentro dela a pasta “Health”. Importe para esta
arquivos h00, h10, h20, h30, h40 e h50
Create Other > GUI Texture para criar o objeto na cena.
Por ser um objeto da interface do jogador, não é possível visualizá
Scene, então vá para o painel Game.
Antes de criarmos o prefab, precisamos adicionar física a esta rocha, pois se testarmos o jogo
do, parada no espaço. Selecione-a e acesse no menu superior
Component > Physics > Rigidbody, e o componente de mesmo nome poderá ser visualizado no
Ao testar o jogo agora, verá que a rocha é afetada por gravidade e se move
a pasta Prefabs criada anteriormente, crie um novo prefab chamado “pedra” e
adicione a esfera a ele, pois teremos mais de uma rocha.
Crie um objeto nulo para agrupar as pedras e posicione-as como desejado. Lembre
dualmente alterado para caso queira rochas de dimensões
Interação com o jogador: GUI e Script
Nossas rochas caem das montanhas, colidem umas com as outras e com a personagem
não há desafio para o jogador a não ser que criemos algum limitador, como uma barra de vida
E é isso que faremos.
Graphical User Interface) é uma forma visual de resposta ao jogador, por
Utilizaremos as imagens que vem junto a este projeto ou, se preferir, pode desenvolver suas
se somente de nomeá-las corretamente para que não haja problemas
No painel Project, crie a pasta “GUI” e dentro dela a pasta “Health”. Importe para esta
, h20, h30, h40 e h50. Selecione qualquer um destes e acesse GameObject >
para criar o objeto na cena.
Por ser um objeto da interface do jogador, não é possível visualizá-lo na câmera do painel
Scene, então vá para o painel Game. No centro da tela terá a barra de vida que importou. No
Antes de criarmos o prefab, precisamos adicionar física a esta rocha, pois se testarmos o jogo
a e acesse no menu superior
, e o componente de mesmo nome poderá ser visualizado no
Ao testar o jogo agora, verá que a rocha é afetada por gravidade e se move
a pasta Prefabs criada anteriormente, crie um novo prefab chamado “pedra” e
Lembre-se que
dualmente alterado para caso queira rochas de dimensões
Nossas rochas caem das montanhas, colidem umas com as outras e com a personagem, mas
dor, como uma barra de vida
) é uma forma visual de resposta ao jogador, por
se preferir, pode desenvolver suas
las corretamente para que não haja problemas
No painel Project, crie a pasta “GUI” e dentro dela a pasta “Health”. Importe para esta pasta os
GameObject >
lo na câmera do painel
No centro da tela terá a barra de vida que importou. No
21 | P a g e
Inspector, altere a posição da barra como desejar.
GUI são diferentes, variando de 0 a 1
Ao dar Play verá que a barra estará lá, estática. No painel Hierarchy, renomeie o objeto para
“vida”. Feito isso, partiremos para o código.
Script A Unity é compatível com as linguagens Java, C# e Boo
“Script” no painel Project e crie um n
“Jogador”. Para editar o script, clique duas vezes no arquivo ou no botão
Inicialmente definiremos as variáveis que farão referência às imagens adicionadas
anteriormente. E então a variável que definirá a vida inicial do jogador:
Então, criaremos a função Update, que a cada novo frame verificará o objeto
a textura conforme retornado.
Inspector, altere a posição da barra como desejar. Os valores no componente Transform para
GUI são diferentes, variando de 0 a 1, e o eixo Z é nulo já que tratamos de um plano.
barra estará lá, estática. No painel Hierarchy, renomeie o objeto para
. Feito isso, partiremos para o código.
A Unity é compatível com as linguagens Java, C# e Boo, utilizaremos a primeira. Crie a pasta
“Script” no painel Project e crie um novo script acessando Create > JavaScript
Para editar o script, clique duas vezes no arquivo ou no botão Edit... no Inspector.
Inicialmente definiremos as variáveis que farão referência às imagens adicionadas
riável que definirá a vida inicial do jogador:
Então, criaremos a função Update, que a cada novo frame verificará o objeto “vida
Os valores no componente Transform para
já que tratamos de um plano.
barra estará lá, estática. No painel Hierarchy, renomeie o objeto para
. Crie a pasta
Create > JavaScript. Nomeie-o
no Inspector.
Inicialmente definiremos as variáveis que farão referência às imagens adicionadas
vida” e alterará
22 | P a g e
Finalizado o script, arraste-o para o First Person Controller na Hierarchy, ou para o Inspector
do mesmo objeto. Arraste as imagens
o para o First Person Controller na Hierarchy, ou para o Inspector
imagens corretas para cada variável definida no script.
o para o First Person Controller na Hierarchy, ou para o Inspector
corretas para cada variável definida no script.
23 | P a g e
Se dermos Play no jogo agora, nada acontecerá com a barra de vida pois,
personagem colida com a rocha, não há um script que subtraia a vida
um novo java script chamado “Colisao
Utilizaremos uma função já existente na Unity
objetos.
Nisso verificamos se o objeto colidido possui a
vida do jogador em 10. Salvo o script
No Inspector, logo abaixo do nome do objeto, há a opção
nesta licensa da Unity.
Criaremos nossa própria tag. Clique em
Se dermos Play no jogo agora, nada acontecerá com a barra de vida pois, mesmo que o
personagem colida com a rocha, não há um script que subtraia a vida. Então o faremos. Crie
Colisao”.
Utilizaremos uma função já existente na Unity, OnCollisionEnter, que verifica colisões entre
ficamos se o objeto colidido possui a tag “pedra”, e se isso for verdade, reduzirá a
o script, selecione o prefab “pedra” criado anteriormente.
No Inspector, logo abaixo do nome do objeto, há a opção Tag, com diversas opções já
Criaremos nossa própria tag. Clique em Add Tag... e nomeie o Element 0 “pedra”.
mesmo que o
. Então o faremos. Crie
colisões entre
“pedra”, e se isso for verdade, reduzirá a
, selecione o prefab “pedra” criado anteriormente.
, com diversas opções já inclusas
24 | P a g e
Assim, com o prefab “pedra” selecionado, selecione a tag “pedra” no Inspector.
será realizada em todos os objetos na cena originado desse prefab.
Por fim, arraste o script “Colisao”
Áudio Colocaremos um som que será ativado toda vez que alguma pedra
Primeiramente, criaremos a pasta “Audio” no painel Project e importaremos o arquivo “
para ela.
Após importado o arquivo, arraste
Awake.
Precisaremos de um script para verificar
pasta script, o novo java script “Pedra”.
Script Esse script funcionará como o anterior, exceto que ao invés de verificar a colisão com o objeto com a tag “pedra”, verificará com a tag “chao” que criaremodiminui a vida do jogador, ele inicia o som contido no objeto quando a verificação se faz correta. Isso pode ser vista na linha
Assim, com o prefab “pedra” selecionado, selecione a tag “pedra” no Inspector. Essa alteração
será realizada em todos os objetos na cena originado desse prefab.
“Colisao” para o First Person Controller e adicione a tag “Player” e ele.
Colocaremos um som que será ativado toda vez que alguma pedra tocar o chão.
Primeiramente, criaremos a pasta “Audio” no painel Project e importaremos o arquivo “
Após importado o arquivo, arraste-o para o prefab “pedra”, e apenas destive a opção
Precisaremos de um script para verificar a colisão da pedra com o chão todo hora. Crie, na
pasta script, o novo java script “Pedra”.
Esse script funcionará como o anterior, exceto que ao invés de verificar a colisão com o objeto com a tag “pedra”, verificará com a tag “chao” que criaremos. Também, esse código não diminui a vida do jogador, ele inicia o som contido no objeto quando a verificação se faz correta. Isso pode ser vista na linha audio.Play();.
Essa alteração
para o First Person Controller e adicione a tag “Player” e ele.
tocar o chão.
Primeiramente, criaremos a pasta “Audio” no painel Project e importaremos o arquivo “boom”
a opção Play on
a colisão da pedra com o chão todo hora. Crie, na
Esse script funcionará como o anterior, exceto que ao invés de verificar a colisão com o objeto Também, esse código não
diminui a vida do jogador, ele inicia o som contido no objeto quando a verificação se faz
25 | P a g e
Crie então a tag “chao” e selecione
Partículas Para criar a fumaça do vulcão usaremos o sistema de partículas da Unity. Acesse GameObject >
Create Other > Particle System para criar o objeto
“Fumaça”, por exemplo, e o posicione pouco dentro do vulcão. Possivelmente tan
quanto as partículas estarão pequenas demais para o tamanho do vulcão
No componente Particle Animator
desejado. Isso fará com que as partículas recebam uma força no eixo designado.
No componente Ellipsoid Particle Emitter
alterar o tamanho de cada partícula, e, mais abaixo, no item
e Z para alterar o tamanho da elipse formada pela animação.
Aumente os valores dos itens
partículas podem alcançar. Aumente também os valores dos itens
Emission para incrementar a emissão de partículas.
Crie então a tag “chao” e selecione-a no Inspector do objeto Terrain.
Para criar a fumaça do vulcão usaremos o sistema de partículas da Unity. Acesse GameObject >
Create Other > Particle System para criar o objeto Particle System na cena.
osicione pouco dentro do vulcão. Possivelmente tan
quanto as partículas estarão pequenas demais para o tamanho do vulcão.
Particle Animator, dentro do item Force, aumente o valor de Y para o valor
desejado. Isso fará com que as partículas recebam uma força no eixo designado.
Ellipsoid Particle Emitter aumente o valor dos itens Min Size e Max Size
alterar o tamanho de cada partícula, e, mais abaixo, no item Ellipsoid, aumente o valor de
para alterar o tamanho da elipse formada pela animação.
alores dos itens Min Energy e Max Energy para alterar a distância que as
partículas podem alcançar. Aumente também os valores dos itens Min Emission
para incrementar a emissão de partículas.
Para criar a fumaça do vulcão usaremos o sistema de partículas da Unity. Acesse GameObject >
na cena. Nomeie-o
osicione pouco dentro do vulcão. Possivelmente tanto o objeto
para o valor
Max Size para
, aumente o valor de X, Y
para alterar a distância que as
Min Emission e Max
26 | P a g e
De volta para o componente Particle Animator,
emanam uma fumaça branca ou acizentada. Altere a opacidade para que haja melhor
aparência na mudança de cores.
Por último, no componente Particle Renderer
Particles para a opção Stretched
esférico.
De volta para o componente Particle Animator, escolha as cores desejas. Vulcões geralmente
emanam uma fumaça branca ou acizentada. Altere a opacidade para que haja melhor
aparência na mudança de cores.
Particle Renderer, altere a opção Billboard no item
Stretched, para esticar as partículas ao invés de deixá-las no formato
escolha as cores desejas. Vulcões geralmente
emanam uma fumaça branca ou acizentada. Altere a opacidade para que haja melhor
no item Stretch
las no formato
27 | P a g e
Fogueira Para fazer a fogueira, importaremos um pacote da Unity, utilizaremos novamente partículas
para produzir o fogo e o animaremos, programaremos um script
colocaremos áudio, assim como nas rochas.
Importando unitypackages No painel Project, clique com o botão direito e escolha a opção
diretório no qual está o pacote “fogueira”, que veio junto a este tut
todos os arquivos contido nesse pacote.
Após carregado o pacote, você poderá ver as texturas, malhas e materias dos arquivos
carregados, além do áudio e de um prefab.
necessário. Assim feito, está importado o unitypackage.
Fogo Criaremos agora o fogo. Crie um sistema de partículas
entretanto as cores para vermelho, laranja
último, cinza para a fumaça.
Para fazer a fogueira, importaremos um pacote da Unity, utilizaremos novamente partículas
para produzir o fogo e o animaremos, programaremos um script para acender a fogueira, e
colocaremos áudio, assim como nas rochas.
No painel Project, clique com o botão direito e escolha a opção Import Package. Selecione o
diretório no qual está o pacote “fogueira”, que veio junto a este tutorial. A Unity importará
todos os arquivos contido nesse pacote.
Após carregado o pacote, você poderá ver as texturas, malhas e materias dos arquivos
carregados, além do áudio e de um prefab. Adicione o prefab na cena, e altere-o como achar
, está importado o unitypackage.
Criaremos agora o fogo. Crie um sistema de partículas e edite como anteriormente, mudando
para vermelho, laranja, amarelo e novamente vermelho para o fogo, e
Para fazer a fogueira, importaremos um pacote da Unity, utilizaremos novamente partículas
para acender a fogueira, e
. Selecione o
A Unity importará
Após carregado o pacote, você poderá ver as texturas, malhas e materias dos arquivos
o como achar
e edite como anteriormente, mudando
para o fogo, e, por
28 | P a g e
Selecione também a opção Stretched em Stretch Particles no componente Particle Renderer.
Note que desabilitei a opção
necessário para animação. Essa opção habilita ou desabilita a
deixaremos desabilitada por enquanto
Nomeie esse sistema de partículas “fogo”. Com ele selecionado acesse no menu superior
Component > Physics > Box Collider
escala dele para que fique menor que a fogueira, como na imagem:
Selecione também a opção Stretched em Stretch Particles no componente Particle Renderer.
Note que desabilitei a opção Emit no componente Ellipsoid Particle Emitter, pois será
Essa opção habilita ou desabilita a emissão de partículas
enquanto.
Nomeie esse sistema de partículas “fogo”. Com ele selecionado acesse no menu superior
Component > Physics > Box Collider para adicionar colisão, na forma de um cubo.
que fique menor que a fogueira, como na imagem:
Selecione também a opção Stretched em Stretch Particles no componente Particle Renderer.
e Ellipsoid Particle Emitter, pois será
emissão de partículas e a
Nomeie esse sistema de partículas “fogo”. Com ele selecionado acesse no menu superior
para adicionar colisão, na forma de um cubo. Altere a
29 | P a g e
Áudio Para adicionar o áudio a fogueira, basta arrastar o arquivo “
para o Inspector do objeto, ou na Hierarchy.
Ative a opção Loop pois queremos que o som repita e mudhaverá som se o jogador não acender a fogueira.
Animação No painel Project, crie a pasta “Animations”. Com o sistema de partícula
abra o painel Animation. Nessa nova pasta, c
Para adicionar o áudio a fogueira, basta arrastar o arquivo “fire_atmosphere” no painel Project
para o Inspector do objeto, ou na Hierarchy.
pois queremos que o som repita e mude o valor do Volume para 0, pois não haverá som se o jogador não acender a fogueira.
No painel Project, crie a pasta “Animations”. Com o sistema de partícula fogo selecionado,
Nessa nova pasta, crie uma nova animação em Create New Clip
” no painel Project
para 0, pois não
selecionado,
Create New Clip, na
30 | P a g e
barra logo acima da hierarquia desse painel, ou simplesmente crie pelo painel Project, como as
vezes anteriores. Nomeie esta animação “Fogo”.
Na hierarquia do painel Animation
deste, o item Emit. Clique no botão
inicialmente 0.
Clique no botão em frente a esse número e escolha a opção
definido na timeline, ou seja, adicionará um
Na timeline, vá para o frame 30 e mude o valor para 1, o que automaticamente adicionará um
keyframe naquele ponto.
O fogo está animado, mas precisamos fazer o mesmo processo com o áudio
hierarquia do painel Animation por Audio Source. No frame
aumente para 2.
barra logo acima da hierarquia desse painel, ou simplesmente crie pelo painel Project, como as
vezes anteriores. Nomeie esta animação “Fogo”.
do painel Animation encontre o componente Ellipsoid Particle Emitter e, dentr
Clique no botão Record e verá o valor relativo a este item, que
Clique no botão em frente a esse número e escolha a opção Add Key, isto marcará o valor
, ou seja, adicionará um keyframe.
Na timeline, vá para o frame 30 e mude o valor para 1, o que automaticamente adicionará um
O fogo está animado, mas precisamos fazer o mesmo processo com o áudio. Procure na
hierarquia do painel Animation por Audio Source. No frame 0, deixe o Volume 0, no frame 30
barra logo acima da hierarquia desse painel, ou simplesmente crie pelo painel Project, como as
encontre o componente Ellipsoid Particle Emitter e, dentro
, que deve ser
, isto marcará o valor
Na timeline, vá para o frame 30 e mude o valor para 1, o que automaticamente adicionará um
. Procure na
0, deixe o Volume 0, no frame 30
31 | P a g e
Por fim, precisamos definir o tipo de animação. Na barra abaixo da hierarquia desse painel há
opções de tipo de animações:
• Once: a animação será iniciada e finalizada uma só vez, toda vez que ativada.
apropriada mas encontraríamos problemas para nosso futuro código.
• Loop: a animação é repetidade infinitamente.
• Clamp Forever: após finalizada, a animação não será repetida e nem poderá ser
ativada novamente.
• Ping Pong: a animação vai e volta, realme
assistir um filme e depois assistí
A opção que selecionaremos será
quando o personagem colidir com a fogueira, a a
0 toda vez que ele colidisse.
Finalizada esta parte, partamos para o código.
Script Como dito, o script reconhecerá o momento em que o personagem colidir com o cubo de
colisão que adicionamos ao sistema de part
código é parecido com o anteriormente feito “
java script chamado “Acender”.
precisamos definir o tipo de animação. Na barra abaixo da hierarquia desse painel há
: a animação será iniciada e finalizada uma só vez, toda vez que ativada.
apropriada mas encontraríamos problemas para nosso futuro código.
a animação é repetidade infinitamente.
após finalizada, a animação não será repetida e nem poderá ser
a animação vai e volta, realmente como uma bola de ping-pong, ou como
assistir um filme e depois assistí-lo de trás para frente e assim infinitamente.
será Clamp Forever, pois o script que criaremos fará com que
quando o personagem colidir com a fogueira, a animação comece, isso faria voltar o volume a
Finalizada esta parte, partamos para o código.
Como dito, o script reconhecerá o momento em que o personagem colidir com o cubo de
colisão que adicionamos ao sistema de partículas “fogo”, e que a animação iniciaria daí. O
o anteriormente feito “Colisao”, com diferenças básicas. Crie um novo
precisamos definir o tipo de animação. Na barra abaixo da hierarquia desse painel há
: a animação será iniciada e finalizada uma só vez, toda vez que ativada. Parece
após finalizada, a animação não será repetida e nem poderá ser
pong, ou como
lo de trás para frente e assim infinitamente.
, pois o script que criaremos fará com que
nimação comece, isso faria voltar o volume a
Como dito, o script reconhecerá o momento em que o personagem colidir com o cubo de
ículas “fogo”, e que a animação iniciaria daí. O
Crie um novo
32 | P a g e
A função verifica o momento da colisão e se a tag do objeto
animação “Fogo” do objeto colidido.
Crie a tag “fogo” e a associe o sistema de partícula de mesmo nome, e o código estará pronto.
GUI Para finalizar, faremos um menu incial, de entrada para o jogo.
Project e crie uma nova cena no projeto em
Crie um cube e posicione-o frente a câmera
painel Project, na pasta Standard Assets > Fonts
versão da Unity, Courier. Com essa fonte selecionada a
Text para criar um novo objeto de texto
altere seu texto para “Play Game” e, também, o nomeie “Play”.
A fonte pode parecer um pouco desfocada, pa
Size no Inspector da fonte em questão.
Adicione um Box Collider nesse objeto ao acessar
Após realizada as alterações desejadas, duplique esse objeto “Play”
abaixo e mude o texto e seu nome para “Quit”, para criarmos o botão de saída do jogo.
isso, precisaremos de um script.
A função verifica o momento da colisão e se a tag do objeto é “fogo”. Caso for, el
animação “Fogo” do objeto colidido.
Crie a tag “fogo” e a associe o sistema de partícula de mesmo nome, e o código estará pronto.
faremos um menu incial, de entrada para o jogo. Crie a pasta “Scenes” no
uma nova cena no projeto em File > New Scene.
o frente a câmera (Main Camera), ao modo que cobra toda a tela.
Standard Assets > Fonts há uma fonte default que vem com essa
essa fonte selecionada acesse GameObject > Create Other > 3D
para criar um novo objeto de texto com determinada fonte. Posicione-o como desejar e
altere seu texto para “Play Game” e, também, o nomeie “Play”.
A fonte pode parecer um pouco desfocada, para corrigir isso, aumente o valor do item
no Inspector da fonte em questão.
nesse objeto ao acessar Component > Physiscs > Box Collider
Após realizada as alterações desejadas, duplique esse objeto “Play”, coloque-o um pouco mais
e mude o texto e seu nome para “Quit”, para criarmos o botão de saída do jogo.
é “fogo”. Caso for, ela inicia a
Crie a tag “fogo” e a associe o sistema de partícula de mesmo nome, e o código estará pronto.
Crie a pasta “Scenes” no painel
cobra toda a tela. No
há uma fonte default que vem com essa
GameObject > Create Other > 3D
o como desejar e
ra corrigir isso, aumente o valor do item Font
Component > Physiscs > Box Collider.
o um pouco mais
e mude o texto e seu nome para “Quit”, para criarmos o botão de saída do jogo. Para
33 | P a g e
Script Crie um novo java script chamado “Menu” na pasta Script no painel Project. Faremos com que
quando o mouse passe por cima desses objetos, sua cor seja alterada, para
jogador. Mas primeiro, definiremos uma variável que definirá ou não se o botão é o botão de
saída.
Na imagem acima, a função OnMouseEnter
botão, a cor da fonte seja alterada para preto. A função abaixo,
cor retorne para branco quando o mouse não esteja em acima do botão.
A função na imagem abaixo encaminha o jogador para o jogo ou para fora do programa,
dependendo do botão clicado (respectivamente, “Play” e “Quit”).
Crie um novo java script chamado “Menu” na pasta Script no painel Project. Faremos com que
o mouse passe por cima desses objetos, sua cor seja alterada, para feedback
jogador. Mas primeiro, definiremos uma variável que definirá ou não se o botão é o botão de
OnMouseEnter faz com que quando o mouse esteja em cima do
botão, a cor da fonte seja alterada para preto. A função abaixo, OnMouseExit, faz com que a
cor retorne para branco quando o mouse não esteja em acima do botão.
A função na imagem abaixo encaminha o jogador para o jogo ou para fora do programa,
dependendo do botão clicado (respectivamente, “Play” e “Quit”).
Crie um novo java script chamado “Menu” na pasta Script no painel Project. Faremos com que
feedback para o
jogador. Mas primeiro, definiremos uma variável que definirá ou não se o botão é o botão de
em cima do
, faz com que a
A função na imagem abaixo encaminha o jogador para o jogo ou para fora do programa,
34 | P a g e
A linha Application.LoadLevel(1)
Settings, acessável no menu File > Build Settings
As cenas devem estar listadas aí, caso uma ou mais não esteja, pode
atualmente na Unity clicando no botão
O número em frente ao diretório e nome da cena é o número de referência à ela, como no
código que acabamos de escrever. Caso a cena que chamei de “quest” não esteja numerada 1,
altere a order arrastando as cenas
Por fim, lembre-se de ativar a opção “Botao Quit” que definimos no Inspector do objeto
“Quit”. Podemos adicionar luzes e outros detalhes, como preferir.
Application.LoadLevel(1) carrega o nível 1 do jogo, que pode ser definido na
File > Build Settings. A seguinte janela deve aparecer:
As cenas devem estar listadas aí, caso uma ou mais não esteja, pode-se adicionar a cena aberta
atualmente na Unity clicando no botão Add Current.
O número em frente ao diretório e nome da cena é o número de referência à ela, como no
escrever. Caso a cena que chamei de “quest” não esteja numerada 1,
as cenas ou simplesmente altere o número no código.
se de ativar a opção “Botao Quit” que definimos no Inspector do objeto
nar luzes e outros detalhes, como preferir.
carrega o nível 1 do jogo, que pode ser definido na Build
se adicionar a cena aberta
O número em frente ao diretório e nome da cena é o número de referência à ela, como no
escrever. Caso a cena que chamei de “quest” não esteja numerada 1,
se de ativar a opção “Botao Quit” que definimos no Inspector do objeto
35 | P a g e
Por hora o botão “Quit” não funcionará pois o jogo está sendo rodado dentro da Unity.
Detalhes Há alguns simples detalhes que podemos adicionar para finalizar o nosso jogo. Por exemplo,
para dar mais imersão, adicionar som das ondas, alguns insetos na pequena floresta de
coqueiros ali.
Os arquivos crickets, gulls_and_waves
e pássaros do litoral, e um leve tremor de terra, caso queira adicionar logo no
avalanche. Deixe a opção Loop ativada para os arquivos de som crickets e gulls_and_waves.
Após importados, preferencialmente para a pasta Audio, basta arrastar esses arquivos para o
painel Hierarchy que estarão inclusos no jogo. Posicion
distância do som faz diferença para a experiência.
Podemos também colocar cubos nas extremidades do mapa para que o jogador não caia.
Entretanto esses cubos não podem ser vistos, então simplesmente desabilite ou remova
componente Mesh Renderer do cubo.
“Parede Invisivel”.
Exportando o jogo Com o jogo finalizado, agora veremos algumas propriedades de exportação e como exportar o
jogo. No menu Edit > Project Settings >
pré-definidas pela Unity. Entretanto cada uma dessas opções pode ser editada logo abaixo, no
Inspector.
Por hora o botão “Quit” não funcionará pois o jogo está sendo rodado dentro da Unity.
Há alguns simples detalhes que podemos adicionar para finalizar o nosso jogo. Por exemplo,
adicionar som das ondas, alguns insetos na pequena floresta de
gulls_and_waves e rockslide, são respectivamente sons de insetos, ondas
e pássaros do litoral, e um leve tremor de terra, caso queira adicionar logo no início do jogo, na
Deixe a opção Loop ativada para os arquivos de som crickets e gulls_and_waves.
Após importados, preferencialmente para a pasta Audio, basta arrastar esses arquivos para o
painel Hierarchy que estarão inclusos no jogo. Posicione-os de forma coerente, pois no 3D a
distância do som faz diferença para a experiência.
Podemos também colocar cubos nas extremidades do mapa para que o jogador não caia.
Entretanto esses cubos não podem ser vistos, então simplesmente desabilite ou remova
do cubo. Para facilitar ainda mais, faça um prefab chamado
Com o jogo finalizado, agora veremos algumas propriedades de exportação e como exportar o
Edit > Project Settings > Quality pode-se alterar a qualidade entre as opções
definidas pela Unity. Entretanto cada uma dessas opções pode ser editada logo abaixo, no
Por hora o botão “Quit” não funcionará pois o jogo está sendo rodado dentro da Unity.
Há alguns simples detalhes que podemos adicionar para finalizar o nosso jogo. Por exemplo,
adicionar som das ondas, alguns insetos na pequena floresta de
espectivamente sons de insetos, ondas
início do jogo, na
Deixe a opção Loop ativada para os arquivos de som crickets e gulls_and_waves.
Após importados, preferencialmente para a pasta Audio, basta arrastar esses arquivos para o
os de forma coerente, pois no 3D a
Podemos também colocar cubos nas extremidades do mapa para que o jogador não caia.
Entretanto esses cubos não podem ser vistos, então simplesmente desabilite ou remova o
Para facilitar ainda mais, faça um prefab chamado
Com o jogo finalizado, agora veremos algumas propriedades de exportação e como exportar o
se alterar a qualidade entre as opções
definidas pela Unity. Entretanto cada uma dessas opções pode ser editada logo abaixo, no
36 | P a g e
Em Edit > Project Settings > Player
da empresa e do jogo, tornar o modo tela
Em Build Settings há algumas opções de plataforma para exportação do jogo. Selecione a
opção desejada, por exemplo Windows Standalone
clique no botão Build.
Escolha o diretório que deseja salvar o jogo e seu nome; para jogá
executável.
Edit > Project Settings > Player pode-se alterar algumas outras configurações como o nome
presa e do jogo, tornar o modo tela-cheia padrão, ícone do jogo, entre outros
Em Build Settings há algumas opções de plataforma para exportação do jogo. Selecione a
Windows Standalone caso use alguma versão do Windows, e
Escolha o diretório que deseja salvar o jogo e seu nome; para jogá-lo basta clicar no arquivo
s outras configurações como o nome
ícone do jogo, entre outros.
Em Build Settings há algumas opções de plataforma para exportação do jogo. Selecione a
caso use alguma versão do Windows, e
lo basta clicar no arquivo
37 | P a g e
Referências Bibliográficas
GOLDSTONE, Will. Unity Game Development Essentials. Birmingham, Packt Publishing Ltd.,
2009.
TornadoTwins: http://www.youtube.com/user/tornadotwins
http://tornadotwins.com/