Você está na página 1de 38

#GDB

MINICURSO UNITY 3D

BSICO

Em parceria com:

Fonte: http://unity3d.com/support/documentation/Manual/User%20Guide.html

Jennifer de Sousa Freitas GameDevelopers Brasil

Contedo
1. Bom, o que a Unity?............................................................................................................ 3
1.

Aprendendo a Interface....................................................................................................... 4
Primeira navegao................................................................................................................ 4
Project View (Viso do Projeto)................................................................................................ 4
Hierarchy View (Viso da Hierarquia)...................................................................................... 6
Parenting(Paternizao)....................................................................................................... 6
ToolBar (Barra de Ferramentas)............................................................................................... 7
Scene View.............................................................................................................................. 7
Navegao da Scene View................................................................................................... 8
Posicionando GameObjects.................................................................................................. 9
Control Bar(Barra de controle) do Scene View.....................................................................9
Game View (Viso do Jogo)................................................................................................... 10
Play Mode (Modo de execuo).......................................................................................... 10
Inspector(Inspetor)................................................................................................................ 11
Prefabs............................................................................................................................... 16
Outras Views......................................................................................................................... 16

2.

Fluxo de trabalho dos Assets............................................................................................. 17


Criar o Asset Bruto................................................................................................................ 17
Importar................................................................................................................................ 17
Import Settings..................................................................................................................... 17
Adicionando um Asset cena............................................................................................... 17
Colocando Assets diferentes juntos....................................................................................... 17
Criando um Prefab................................................................................................................ 17
Alterando Assets................................................................................................................... 18
Opcional Adicionando rtulos a seus Assets.......................................................................18
Notas:................................................................................................................................ 18

3.

Criando Scenes.................................................................................................................. 19
Instanciando Prefabs............................................................................................................. 19
Adicionando Components e Scripts....................................................................................... 19
Colocando GameObjects....................................................................................................... 19
Trabalhando com Cmeras.................................................................................................... 19
Lights.................................................................................................................................... 19

4.

GameObjects..................................................................................................................... 20
1

O que so GameObjects........................................................................................................ 20
O Relacionamento GameObject-Component.........................................................................20
O Component Transform.................................................................................................... 20
Outros Components........................................................................................................... 21
Usando Components.......................................................................................................... 21
Adicionando Components.................................................................................................. 22
Editando Components........................................................................................................ 23
Testando Propriedades....................................................................................................... 24
Removendo Components................................................................................................... 25
O relacionamento Component-Script.................................................................................... 25
Usando Scripts................................................................................................................... 25
Criando novos Scripts........................................................................................................ 25
Anexando Scripts a GameObjects...................................................................................... 26
Manipulando do GameObject............................................................................................. 28
O poder das variveis........................................................................................................ 28
Acessando outros Components.......................................................................................... 29
Para onde ir a partir daqui................................................................................................. 30
5.

Publicando Builds(Construes)......................................................................................... 31

6.

Concluso.......................................................................................................................... 32

1. Bom, o que a Unity?


A Unity 3D um motor de jogos (game engine) que possibilita o desenvolvimento de jogos.
Assim como toda game engine ou 3D engine, ela facilita o desenvolvimento de jogos pelo fato
de o desenvolvedor no precisar programar diretamente para DirectX ou OpenGL, pois ela j
faz isso para voc.
A Unity pode fazer jogos para produtos da Apple (Mac, IPhone, IPod, IPad), da Microsoft (Xbox,
Windows), da Google (Celulares com Android), da Sony (Playstation 3), da Nintendo (Wii) e
para Navegadores Web (Internet Explorer, Mozilla Firefox, Google Chrome, Opera e Safari).
Alm dessa portabilidade, a Unity possui uma grande quantidade de ferramentas e muito
fcil de trabalhar com ela, pois alm de ser visual(no apenas baseada em cdigo como a
Irrlicht, por exemplo) a interface bastante amigvel. Ela possui uma ferramenta de script
baseada no Mono (ferramenta para desenvolver e executar aplicaes .NET cliente e servidor
em diferentes plataformas), possibilitando a programao em C#, Javascript e Python.
A Unity tambm permite a criao de Shaders comalinguagemSharderLab,CgdaNVidia, GLSL
para o OpenGL e trabalha tambm com Shader Mode. OsubsistemadesimulaofsicaoPhysX,
tambmdaNVidia. Ela usa tambm bibliotecas Direct X, Open GL para renderizao 3D e
OpenAL para udio.
Outro ponto forte da Unity a importao de arquivos. Ela importa em vrios formatos, tanto
2D quanto 3D o que exclui o trabalho de ter que exportar alguma arte antes de importar na
Unity. Ela aceita os arquivos dos seguintes programas:
Blender: .blend
Autodesk 3DS Max: .max
Autodesk Maya: .mb or .ma
Maxon CINEMA 4D: .c4d
Cheetah3D: .jas
Luxology Modo 3D: .lxo *a partir do modo 501
NewTek LightWave: necessrio exportar para .fbx utilizando o plugin para exportar para fbx
do LightWave.
Unity tambm l arquivos .FBX, .dae, .3DS, .dxf e .obj. tambm aceita o .collada. Para
arquivos de textura (arquivos 2D) ele aceita os formatos: PSD, TIFF, JPG, TGA, PNG, GIF, BMP,
IFF, PICT.
AUnity3Dalm dessas caractersticas free apesar de ter a verso Pro que um preo no
to fora da realidade.

1. Aprendendo a Interface
Primeira navegao
Vamos comear aprendendo a interface da Unity. Se voc no tiver aberto a Unity ainda, voc
pode encontra-la dentro de Iniciar Programas Unity no Windows, ou Aplicaes
Unity no Mac. O Editor da Unity ir aparecer. No tenha pressa para examinar a interface do
Editor da Unity e se familiarizar com ela. A Janela Principal do Editor composta de vrias
abas chamadas de Views(Vises). H vrios tipos de Views na Unity, cada uma com um
propsito especfico.

Project View (Viso do Projeto)

Todo projeto Unity contm uma pasta de Assets (ativos). Os contedos dessa pasta so
apresentados no Project View. Este onde voc armazena todos os Assets que compe seu
jogo, como cenas, scripts, modelos 3D, texturas, arquivos de udio e Prefabs (Pr-fabricados).
Se voc clicar com o boto direito em qualquer Asset no Project View, voc pode escolher
Reveal in Explorer Mostrar no Explorer (Reveal in Finder Mostrar no Localizador
no Mac) para realmente ver o asset mesmo em seu sistema de arquivos.
PS: Voc nunca deve mover os assets do projeto atravs do Sistema Operacional, uma vez
que ir quebrar todos os metadados associados com o asset. Sempre use o Project View para
organizar seus assets.
Para adicionar Assets para seu projeto, voc pode arrastar qualquer arquivo de seu sistema
operacional para dentro do Project View, ou usar Assets Import New Asset (Ativos
Importar Novo Ativo). Seu Asset agora est pronto para ser utilizado em seu jogo.
Scenes (cenas) tambm so armazenados no Project View. Pense nelas como nveis
individuais. Por exemplo, a Islands Scene (cena da Ilha) carregada por padro quando a
Unity executada da primeira vez. Para criar uma nova Scene, use Control Ctrl +N
(Command+N no Mac). Para salvar a scene corrente dentro do Project View, use Control
Ctrl +S (Command+S no Mac).
Alguns Assets do jogo precisam ser criados de dentro da Unity. Para fazer isso, use a dropdown (caixa suspensa) Create(Criar), ou boto direito Create.

A caixa suspensa Create


Isso ir permitir que voc adicione Scripts, Prefabs, ou Folders(pastas) para manter seu
projeto organizado. Voc pode renomear qualquer Asset/Folder pressionando F2 no Windows,
ou Enter no Mac, ou com dois cliques espaados no nome do Asset. Se voc segurar a tecla
Alt enquanto voc expande ou contrai algum diretrio, todos os subdiretrios tambm sero
expandidos ou contrados.

Hierarchy View (Viso da Hierarquia)

A Hierarchy contm todo GameObject (Objeto de jogo) na Scene corrente. Alguns desses
so instncias diretas de arquivos de Assets como modelos 3D, e outros so instncias de
Prefabs objetos customizados que iro compor muito do seu jogo. Voc pode selecionar e
paternizar objetos na Hierarchy. Como objetos so adicionados e removidos da Scene, eles
iro aparecer e desaparecer da Hierachy tambm.
Parenting(Paternizao)
Unity utiliza um conceito chamado Parenting. Para tornar um GameObject filho de outro,
arraste o filho desejado sobre o pai desejado na Hierarchy. O filho ir herdar o movimento e a
rotao de seu pai. Voc pode agora expandir e contrair o pai para ver seus filhos na
Hierarchy sem afetar seu jogo.

Dois objetos sem Pai

Um objeto Paternizado a outro

ToolBar (Barra de Ferramentas)

A Barra de Ferramentas consiste em cinco controles bsicos. Cada um refere-se a diferentes


partes do Editor.
Ferramentas de Transformao: usadas com a Scene View.
Alternador de Gizmo de Transformao: afeta a tela no Scene View.
Botes Play/Pause/Step: utilizados com a Game View (Viso do jogo).
Caixa suspensa de camadas: controla quais objetos so mostrados na Scene
View.
Caixa suspensa de Layout: Controles dispostos em todas as Views.

Scene View

The Scene View


A Scene View sua caixa de areia interativa. Voc ir utilizar a Scene View para selecionar e
posicionar os ambientes, o jogador, as cmeras, inimigos, e todos os outros GameObjects.
9

Manobra e manipulao de objetos dentro da Scene View so algumas das funes mais
importantes da Unity, ento importante estar apto a faz-los rapidamente.

10

Navegao da Scene View


Aqui est um breve resumo dos fundamentos de navegao da Scene View.
Segure o boto direito do mouse para entrar no modo Flythrough(Areo). Isso transforma
seu mouse e as teclas WASD (mais Q e E para cima e para baixo) em navegao rpida da
viso de primeira pessoa.
Selecione qualquer GameObject e pressione a tecla F. Isso ir centralizar o ponto piv
(encontro dos eixos x, y, z no centro do objeto) na Scene View.
Utilize as teclas de setas para mover em torno do plano X/Z.
Segure Alt e clique e arraste para girar a cmera em torno do piv corrente.
Segure Alt e clique e arraste com o boto do meio para arrastar a Scene View em torno da
cmera.
Segure Alt e clique e arraste com o boto direito para zoom na Scene View. o mesmo que
rolar a roda do mouse.
Voc pode tambm achar utilidade na Hand Tool(Ferramenta Mo) (atalho Q),
especialmente se voc estiver usando um mouse de um boto. Com a Hand Tool est
selecionada,
Clique e arraste para arrastar em volta da cmera.
Segure Alt e clique e arraste para girar a cmera em torno do piv
corrente.
Segure Control Ctrl (Command no Mac) e clique e arraste para zoom
da cmera.
No canto superior direito do Scene View o Scene Gizmo. Este mostra a atual orientao da
cmera da Scene, e permite que voc modifique rapidamente o ngulo de viso.

Voc pode clicar em qualquer um dos braos para encaixar a cmera da Scene para aquela
direo e mudar ela para o Isometric Mode (Modo Isomtrico). Enquanto estiver no
Isometric Mode, voc pode clicar e arrastar com o boto direito para girar, e Alt + clicar e
arrastar para deslocar. Para sair desse modo, clique no meio do Scene Gizmo. Voc pode
tambm utilizar Shift+Clicar no meio do Scene Gizmo a qualquer momento para alternar para
o Isometric Mode.

11

Posicionando GameObjects
Aqui est um breve resumo dos fundamentos de posicionar GameObjects.
Quando voc construir seus jogos, voc ir colocar muitos objetos diferentes em seu game
world(mundo do jogo). Para fazer isso, utilize as Transform Tools na barra de ferramentas para
mudar de posio, rotacionar e dimensionar GameObjects individuais. Cada um tem um
Gizmo correspondente que ir aparecer em torno do GameObject selecionado na Scene View.
Voc pode usar o mouse e manipular qualquer eixo do Gizmo para alterar o componente de
Transformao do GameObject, ou voc pode digitar os valores diretamente dentro dos
campos numricos do componente de transformao no Inspector (Inspetor).

Control Bar(Barra de controle) do Scene View

A barra de controle do Scene View permite que voc veja a Scene em vrios modos de viso
Textured (Texturizado), Wireframe (exibindo os polgonos dos modelos 3D), RGB (Cores RGB),
Overdraw (Super desenhado), e muitos outros. Ela tambm ir permitir que voc veja (e oua)
em jogo, a iluminao, os elementos do jogo e som na Scene View.

12

Game View (Viso do Jogo)

O Game View renderizado a partir da cmera do seu jogo. a representao do seu jogo
final, o jogo publicado. Voc ir precisar usar uma ou mais cmeras para controlar o que o
jogador realmente est vendo quando eles esto jogando seu jogo. Para falar mais sobre
cmeras, ver o captulo de cmeras.
Play Mode (Modo de execuo)

Use os botes na barra de ferramentas para controlar o editor Play Mode e veja como seu
jogo publicado ir executar. Enquanto estiver no Play mode, algumas mudanas voc pode
fazer temporariamente, e sero reiniciadas quando voc sair do Play mode. O Editor UI ir
escurecer para lembrar voc disso.
Barra de controle Game View

A primeira caixa suspensa da barra de controle Game View a Aspect drop-down (caixa
suspensa de Aspecto). Aqui voc fora a proporo da janela Game View para diferentes
valores. Ele pode ser usado para testar como seu jogo ir ser exibido em monitores de
diferentes propores.
Mais a direita o alternador Maximize on Play (Maximizar durante o jogo). Enquanto
estiver habilitado, o Game View ir maximizar de 100% da sua janela do Editor para uma
visualizao legal em tela cheia quando voc entrar no Play mode.

13

Continuando a direita o alternador Gizmos. Enquanto estiver habilitado, todos os Gizmos


que aparecem na Scene View iro tambm ser desenhados no Game View. Isso inclui Gizmos
desenhados usando qualquer uma das funes das classes de Gizmo.
Finalmente ns temos o boto Stats(Estatsticas). Esse mostra a janela de estatsticas da
renderizao que muito til para otimizar a performance dos grficos.

Estatsticas da Game View de seu jogo

Inspector(Inspetor)

14

Jogos na Unity so feitos de mltiplos GameObjects que contm meshes (malhas), scripts,
sounds (sons), ou outro elemento grfico como Ligths(Luzes). O Inspector mostra
informaes detalhadas sobre o seu GameObject selecionado no momento, incluindo todos os
Components (Componentes) anexados a ele e suas propriedades. Aqui, voc pode mudar a
funcionalidade dos GameObjects na sua Scene. Voc pode mais sobre relacionamento
GameObject-Component, e muito importante saber.
Qualquer propriedade que mostrada no Inspector pode ser diretamente modificada. Mesmo
variveis de scripts podem ser modificadas sem alterao do prprio script. Voc pode usar o
Inspector para mudar variveis em tempo de execuo para experimentar e encontrar a
jogabilidade mgica do seu jogo. Em um script, se voc define uma varivel pblica de um
tipo de objeto (como GameObject ou Transform), voc pode arrastar e soltar um GameObject
ou Prefab dentro do Inspector para fazer a associao.

15

Clique na interrogao do lado de qualquer nome de componente no Inspector para carregar


sua pgina de referncia.

Adicionar Componentes a partir do menu Component


Voc pode clicar no cone da engrenagem pequena (ou boto direito no nome do componte)
para apresentar um menu de contexto para componente especfico.
16

17

O Inspector ir tambm mostrar todo Import Settings (configurao de Importao) para o


arquivo Asset selecionado.

Clique em Apply (Aplicar) para reimportar seu Asset.

18

Utilize a caixa suspensa Layer (Camada) para associar uma camada de renderizao para o
GameObject. Utilize a caixa suspensa Tag para associar uma etiqueta a esse GameObject.
Prefabs
Se voc tiver um Prefab selecionado, alguns botes adicionais estaro disponveis no
Inspector. Para mais informaes sobre Prefabs, v at o captulo de Prefabs.

Outras Views
As Views descritas acima aborda os conceitos bsicos da Unity. As outras Views da Unity sero
mostradas em captulos separados.

19

2. Fluxo de trabalho dos Assets.


Aqui ns vamos explicar passo a passo como usar um Asset com a Unity. Esses passos so
gerais e so apenas como uma viso geral de aes bsicas.

Criar o Asset Bruto


Use qualquer pacote de modelagem 3D suportado pela Unity (descritos no primeiro captulo
dessa apostila). Por exemplo, voc utilizar o 3D Max. Trabalhe com o Asset at voc estar
pronto para salvar.

Importar
Quando voc salva um Asset inicialmente, voc poderia salvar ele normalmente na pasta
Assets na Pasta do seu projeto. Quando voc abre o projeto Unity, o Asset ser detectado e
importado dentro do projeto. Quando voc olhar na Project View, voc ver o Asset
localizado l, exatamente onde voc o salvou. Por favor, note que a Unity usa o exportador
FBX fornecido pelo seu pacote de modelagem para converter seus modelos para o formato
FBX. Voc precisar ter o exportador FBX de seu pacote de modelagem disponvel para Unity
utilizar. Alternativamente, voc pode exportar como FBX de sua aplicao e salvar na pasta
Projects.

Import Settings
Se voc selecionar o Asset na Project View as Import Settings (Configuraes de
Importao) para esse Asset iro aparecer no Inspector. As opes que sero mostradas iro
mudar baseadas no tipo de Asset que est selecionado.

Adicionando um Asset cena


Simplesmente clique e arraste o mesh (malha) do Project View para a Hierarchy ou Scene
View para adicionar ele a Scene. Quando voc arrasta o mesh para a Scene, voc est
criando um GameObject (Objeto de Jogo) que tem um Mesh Renderer Component
(Componente de Renderizao da Malha). Se voc estiver trabalhando com uma textura
ou um arquivo de som, voc ter que adicionar ele a um GameObject que j existe na Scene
ou no Projeto.

Colocando Assets diferentes juntos


Aqui est uma breve descrio do relacionamento entre os Assets mais comuns.
Uma textura aplicada a um Material.
Um material aplicado a um GameObject (com um componente de Renderizao da
Malha).
Uma Animao aplicada a um GameObject (com um componente de Animao).
Um arquivo de som aplicado a um GameObject (com um Audio Source (Fonte de
udio)).

20

Criando um Prefab
Prefabs so uma coleo de GameObjects e Components que podem ser reutilizados em
suas Scenes. Muitos objetos idnticos podem ser criados a partir de um nico Prefab,
chamado instancing (instncia). Pegue rvores como exemplo. Criando um Prefab de rvore,
permitir que voc instancie muitas rvores idnticas e colocar elas em sua Scene. Porque as
rvores esto todas ligadas ao Prefab, qualquer mudana que for feita no Prefab,
automaticamente ser aplicado em todas as instncias de rvores. Ento, se voc deseja
mudar o mesh, o material, ou qualquer outra coisa, basta voc fazer a mudana apenas no
Prefab e todas as outras rvores herdaro a mudana. Voc tambm pode fazer mudanas
em uma instncia, e escolher GameObject -> Apply changes to Prefab no menu principal.
Isto pode te poupar muito tempo durante a configurao e alterao dos Assets.
Quando voc tem um GameObject que contm mltiplos Components e uma Hierarchy de
GameObjects filhos, voc pode fazer um Prefab de GameObject de nvel superior (ou root
raiz), e reutilizar o conjunto completo de GameObjects.
Para realmente criar um Prefab a partir de um GameObject da sua Scene, primeiro crie um
novo Prefab em seu Project View. Nomeie o novo Prefab como voc desejar. Ento, clique no
GameObject na Scene que voc deseja transformar em Prefab. Arraste ele at o novo Prefab,
e voc poder ver o texto do nome dos GameObjects mudar para azul. Voc tem agora um
Prefab reutilizvel.

Alterando Assets
Voc importou, instanciou e ligou seu Asset a um Prefab. Agora, quando voc quiser editar
seu Asset fonte, apenas d duplo clique nele a partir do Project View. A aplicao adequada
ir iniciar, e voc poder fazer qualquer mudana que voc quiser. Quando voc estiver
terminado de alterar ele, apenas o salve. Ento, quando voc alternar para a Unity, a
alterao ser detectada, e o Asset ser reimportado. A ligao do asset com o Prefab
tambm ser mantida. Assim, o efeito que voc ver que seu Prefab ser alterado. Isso
tudo que voc precisa saber sobre alterao de Assets. Apenas abra ele e salve.

Opcional Adicionando rtulos a seus Assets


sempre uma boa idia adicionar rtulos a seus Assets se voc deseja manter todos os seus
assets organizados, com isso voc pode procurar pelos rtulos adicionados a cada asset no
campo de pesquisa no Project View, ou no Object Selector.
Passos para adicionar um rtulo a seu Asset

Selecione o asset que voc deseja adicionar o rtulo a ele (A partir da Project View)

No Inspector clique no cone Add Label (Adicionar Rtulo)


se voc no tiver
nenhum rtulo associado a aquele Asset.
Se voc tiver um rtulo associado a um Asset ento apenas clique onde o
rtulo est.
Comece escrevendo seus rtulos.

Notas:
Voc pode ter mais de um rtulo para um para qualquer Asset.
Para separar/criar rtulos, apenas pressione espao ou enter quando estiver escrevendo o
nome do label do Asset.

21

3. Criando Scenes
As Scenes contm os objetos de seu jogo. Elas podem ser usadas para criar um menu
principal, fases individuais, e qualquer outra coisa. Pense em cada um arquivo Scene como
um nico nvel (fase). Em cada Scene, voc ir colocar seus ambientes, obstculos e
decoraes, essencialmente desenhar e construir seu jogo em pedaos.

Instanciando Prefabs
Utilize o mtodo descrito no captulo anterior para criar um Prefab. Uma vez que voc criou
um Prefab, voc pode rpida e facilmente fazer cpias do Prefab, chamadas de uma
Instncia. Para criar uma instncia de qualquer Prefab, arraste o Prefab a partir do Project
View para a Hierarchy ou Scene View. Agora voc tem uma nica instncia de seu Prefab
para posicionar e ajustar como voc desejar.

Adicionando Components e Scripts


Quando voc tem um Prefab ou qualquer GameObject em destaque, voc pode adicionar
funcionalidades adicionais a ele atravs do uso de Components. Scripts so um tipo de
Component. Para adicionar um Component, apenas destaque seu GameObject e selecione um
Component a partir do menu Component. Voc ver ento o Component aparecer na
Inspector do GameObject. Scripts esto contidos tambm no menu Component por padro.
Se ao adicionar um Component quebrar a conexo do GameObject com o Prefab, voc pode
sempre utilizar GameObject Apply Changes to Prefab (Aplicar alteraes ao Prefab)
do menu para restabelecer a conexo.

Colocando GameObjects
Uma vez que seu GameObject est na Scene, voc pode usar as Transform Tools
(Ferramentas de Transformao) para posicionar ele onde quer que voc queira.
Adicionalmente, voc pode utilizar os valores Transform no Inspector para um ajuste fino de
posicionamento e rotao.

Trabalhando com Cmeras


As Cmeras so os olhos do seu jogo. Tudo que o jogador ver quando estiver jogando
atravs de uma ou mais cmeras. Voc pode posicionar, girar, e adicionar um pai as cmeras
assim como qualquer outro GameObject. Uma cmera apenas um GameObject com um
Component de Cmera anexado a ele. Portanto ele pode fazer qualquer coisa que um
GameObject normal pode fazer, e ento algumas funes especficas de cmera tambm. H
tambm alguns scripts de cmera teis que so instalados com o Pacote Standard Assets
(Assets Padro) quando voc cria um novo projeto. Voc pode encontra-los em Components
Camera-Control do menu.

Lights
Exceto em alguns poucos casos, voc sempre precisar adicionar Lights(Luzes) a sua Scene.
H trs diferentes tipos de Lights, e todas elas comportam um pouco diferente umas das
outras. O que importa que elas adicionem a atmosfera e o ambiente ao seu jogo.
22

Iluminaes diferentes podem mudar completamente o humor do seu jogo, e a utilizao de


Lights efetivamente ser um assunto importante para aprender.

23

4. GameObjects
GameObjects so os objetos mais importantes na Unity. muito importante entender o que
um GameObject , e como ele pode ser usado. Este captulo vai explicar tudo isso para voc.

O que so GameObjects
Cada objeto no seu jogo um GameObject. No entanto, GameObjects no fazem nada
sozinhos. Eles precisam de propriedades especiais antes que eles possam se tornar um
personagem, um ambiente, ou um efeito especial. Mas cada um desses objetos faz muitas
coisas diferentes. Se cada objeto um GameObject, como podemos diferenciar um objeto de
power-up (adicionar poder) interativo de uma sala de esttica? O que torna esses
GameObjects diferentes uns dos outros?
A resposta a esta pergunta que GameObjects so recipientes. Eles so caixas vazias que
pode conter diferentes peas que compem uma ilha com lightmap (mapa de luz) ou um
carro com direo fsica. Assim para realmente compreender GameObjects, voc tem que
entender essas peas; elas so chamadas de Components (Componentes). Dependendo
do tipo de objeto que voc deseja criar, voc ir adicionar diferentes combinaes de
Components para o GameObject. Pense em um GameObject como uma panela vazia, e
componentes como diferentes ingredientes que compem a sua receita de jogabilidade. Voc
tambm pode fazer seus prprios Components usando Scripts.

O Relacionamento GameObject-Component
Conforme descrito anteriormente, um GameObject contm Components. Vamos explorar essa
relao discutindo um GameObject e seu Component mais comum - o Component Transform
(Transformao). Com qualquer Scene aberta na Unity, criar um novo GameObject (usando
Shift-Control-N no Windows ou Shift-Command-N no Mac), selecione-o e d uma olhada
no Inspector.

O Inspector de um GameObject vazio


Observe que um GameObject vazio ainda contm um nome, uma Tag (marca), e uma Layer
(camada). Cada GameObject tambm contm um Component Transform.
O Component Transform
impossvel criar um GameObject na Unity, sem um Component Transform. O Component
Transform um dos componentes mais importantes, uma vez que todas as propriedades de
transformao do GameObject so ativadas pelo uso deste Component. Ele define a posio,
rotao e escala do GameObject no mundo do jogo/Scene View. Se um GameObject no tem
um Component Transform, ele no seria nada mais do que algumas informaes na memria
do computador. Ele efetivamente no existiria no mundo.
24

O Component Transform tambm permite um conceito chamado Paternidade, que utilizado


pelo do Unity Editor e uma parte critica do trabalho com GameObjects.

Outros Components
O Component Transform costuma ser fundamental a todos os GameObjects, de modo que
cada GameObject tem um. Mas GameObjects podem conter outros componentes tambm.

A Cmera principal, adicionada a cada Scene por padro.


Dando uma olhada no GameObject Main Camera (Cmera principal), podemos ver que ele
contm uma coleo de diferentes Components. Especificamente, um Component Camera,
um GUILayer (Camada de interface com usurio), uma Flare Layer (camada de reflexo), e um
Audio Listener (ouvinte de udio). Todos esses componentes fornecem funcionalidades
adicionais para o GameObject. Sem eles, no haveria nada de renderizao dos grficos do
jogo para a pessoa jogar! Rigidbodies (Corpos Rigidos), Colliders (colisores), Particles
(partculas) e Audio (udio) so todos os diferentes Components (ou combinaes dos
mesmos) que podem ser adicionados a qualquer GameObject dado.
Usando Components
Os Components so as porcas e parafusos de objetos e comportamentos em um jogo. Eles
so as peas funcionais de cada GameObject.
25

O GameObject um recipiente para muitos Components diferentes. Por padro, todos os


GameObjects automaticamente tm um Component Transform. Isso ocorre porque o
Transform determina onde o GameObject est localizado, e como ele girado e
redimensionado. Sem um Component Transform, o GameObject no teria um lugar no mundo.
Tente criar um GameObject vazio agora como um exemplo. Clique no menu GameObject
Create Empty (Criar Vazio). Selecione o GameObject novo, e olhe para o Inspector.

At mesmo GameObjects vazios tem um Component Transform


Lembre-se que voc sempre pode usar o Inspector para ver quais os Components esto
ligados ao GameObject selecionado. Como Components so adicionados e removidos, o
Inspector vai sempre mostrar-lhe quais esto anexados no momento. Voc vai usar o
Inspector para alterar todas as propriedades de qualquer componente (incluindo scripts).
Adicionando Components
Voc pode adicionar Components ao GameObject selecionado atravs do menu de
Components. Vamos tentar isso agora adicionando um Rigidbody ao GameObject vazio que
acabamos de criar. Selecione-o e escolha ComponentPhysicsRigidbody
(Componente FsicaCorpo Rigido) no menu. Quando voc o fizer, voc vai ver as
propriedades do Rigidbody aparecem no Inspector. Se voc pressionar Play enquanto o
GameObject vazio ainda est selecionado, voc pode ter uma pequena surpresa. Experimente
e observe como o Rigidbody tem funcionalidade para o GameObject vazio. (O Component y
do GameObject comea a diminuir. Isso ocorre porque o engine fsica na Unity est fazendo o
GameObject cair por causa da gravidade).

Um GameObject vazio com um Componente Rigidbody anexado


Voc pode anexar qualquer nmero ou combinao de componentes a um GameObject nico.
Alguns Components trabalham melhor em combinao com outros. Por exemplo, o Rigidbody
funciona com qualquer Collider. O Rigidbody controla a transformao atravs da engine fsica
NVIDIA PhysX, e o Collider permite que o RigidBody colida e interaja com outros colisores. Um
26

outro exemplo de combinaes de Components um Particle System (Sistema de partculas).


Eles usam um Particle Emitter (Emissor de partculas), Particle Animator (Animador de
Partculas) e um Particle Renderer (Renderizador de partculas) para criar um grupo de
partculas em movimento.
Se voc quiser saber mais sobre como usar um Component especfico, voc pode ler sobre
qualquer um deles na Component Reference (Referncia de Componentes) http://unity3d.com/support/documentation/Components/Components.html. Voc tambm
pode acessar a pgina de referncia para um Componente de Unity clicando no pequeno (?)
no cabealho do Component no Inspector.
Editando Components
Um dos grandes aspectos dos componentes a flexibilidade. Quando voc anexar um
componente a um GameObject, existem diferentes valores ou propriedades no Componente
que podem ser ajustados no editor, durante a construo de um jogo, ou por scripts durante a
execuo do jogo. Existem dois principais tipos de propriedades: Valores e Referncias.
Olhe a imagem abaixo. um GameObject vazio, com um Audio Source (fonte de udio). Todos
os valores da fonte de udio no Inspector so os valores padro.

27

Este Componente contm uma nica propriedade Reference e sete propriedades Value. Audio
Clip a propriedade Reference. Quando esta Audio Source (fonte de udio) comea a tocar,
ele tentar reproduzir o arquivo de udio que referenciado na propriedade Audio Clip. Se
nenhuma referncia feita, ocorrer um erro porque no h nenhum udio a ser tocado. Voc
deve fazer referncia ao arquivo dentro do Inspector. Isso to fcil como arrastar um arquivo
de udio do Project View para a propriedade Reference ou usando o Seletor de objeto.

28

Agora, um arquivo de efeito sonoro referenciado na propriedade Audio Clip.


Os componentes podem incluir referncias para qualquer outro tipo de Component,
GameObjects, ou Asset.
O propriedades restantes no Audio Clip so todas as propriedades Value. Estes podem ser
ajustados diretamente no Inspector. As propriedades Value sobre o Audio Clip so todas
alternveis: valores numricos, os campos drop-down, mas as propriedades de valor tambm
podem ser textos, cores, curvas, e outros tipos.
Testando Propriedades
Enquanto seu jogo est em modo de jogo, voc est livre para alterar as propriedades no
Inspetor de qualquer GameObject. Por exemplo, voc pode querer experimentar com
diferentes alturas de salto. Se voc criar uma propriedade altura de salto em um script, voc
pode entrar em modo de jogo, alterar o valor e pressionar o boto de salto para ver o que
acontece. Ento, sem sair do Play Mode voc pode alter-lo novamente e ver os resultados
dentro de segundos. Quando voc sair do modo de jogo, suas propriedades voltaro aos
valores pr-Play Mode, para voc no perder nenhum trabalho. Esse fluxo de trabalho lhe d
29

um poder incrvel para experimentar, ajustar e aperfeioar o seu jogo sem investir muito
tempo em ciclos de iterao. Experimente-o com qualquer propriedade em Play Mode.
Removendo Components
Se voc quiser remover um componente, opo - ou boto direito do mouse no seu cabealho
no Inspector e escolha Remover Componente. Ou voc pode clicar no cone das opes ao
lado do ? no cabealho do componente. Todos os valores da propriedade sero perdidos e isto
no pode ser desfeito, portanto, tenha certeza absoluta de que deseja remover o componente
antes de o fazer.

O relacionamento Component-Script
Quando voc cria um script e anexa-o a um GameObject, o script aparece no Inspector do
GameObject apenas como um componente. Isso ocorre porque os scripts se tornam
componentes quando eles so salvos - um script apenas um tipo especfico de Componente.
Em termos tcnicos, um script compila como um tipo de Componente, e tratado como
qualquer outro componente da engine Unity. Ento, basicamente, um script um
Componente que voc est criando para voc mesmo. Voc ir definir os seus membros para
serem expostos no Inspector, e ele ir executar qualquer funcionalidade que voc escreveu.
Usando Scripts
Esta uma breve introduo sobre como criar e utilizar scripts em um projeto. Scripts dentro
da Unity so feitos escrevendo simples scripts de comportamento em JavaScript, C #, ou
Boo (Python). Voc pode usar uma ou todas as linguagens de script em um nico projeto,
no h nenhuma penalidade por usar mais de um.
Criando novos Scripts
Ao contrrio de outros Assets, como mesh(malhas) ou textures (texturas), arquivos de script
podem ser criados a partir de dentro da Unity. Para criar um novo script, abrir
AssetsCreateJavaScript (ou AssetsCreateC Sharp Script ou
AssetsCreateBoo Script) no menu principal. Isso ir criar um novo script chamado
NewBehaviourScript e coloc-lo na pasta selecionada no Project View. Se nenhuma pasta
estiver selecionada no Project View, o script ser criado na raiz.

30

Voc pode editar o script clicando duas vezes sobre ele no Project View. Isso iniciar seu
editor padro selecionado nas preferncias da Unity. Voc faz todo o seu script em um editor
de texto externo, e no diretamente na Unity. Para definir o editor de script padro, alterar o
item drop-down em UnityPreferencesExternal Script.

Estes so os contedos de um novo script de comportamento, vazio:


function Update () {

Um script novo e vazio no faz muito por conta prpria, ento vamos adicionar alguma
funcionalidade. Altere o script para ler o seguinte:
function Update () {

print("Hello World");

Quando executado, esse cdigo ir imprimir "Hello World" para o console. Mas no h nada
que faz com que o cdigo seja executado ainda. Temos que anexar o script a um GameObject
ativo na Scene antes de ele ser executado.
Anexando Scripts a GameObjects
Salve o Script acima e crie um novo objeto na Scene selecionando GameObject Create
Other Cube. Isso ir criar um novo GameObject chamado Cube(Cubo) na Scene atual.

31

Agora arraste o Script do Project View para o Cubo (na Scene ou na Hierarchy View, no
importa) Voc tambm pode selecionar o cubo e escolher ComponentScriptsNew
Behaviour Script. Qualquer um desses mtodos vo anexar o Script ao Cubo. Todo Script
que voc criar vai aparecer no menu ComponentsScripts. Se voc tiver mudado o nome
do seu Script, voc ver aquele nome ento.

Se voc selecionar o Cubo e olhar para o Inspector, voc ver que o seu Script est visvel
agora. Isso significa que ele foi anexado.

32

Pressione Play para testar sua criao. Voc deveria ver o texto Hello World aparecendo ##
dos botes Play/Pause/Step. Saia do Play Mode quando voc ver isso.

Manipulando do GameObject
Uma declarao print() pode ser muito til ao depurar o script, mas no manipula o
GameObject ao qual o Script anexado. Vamos mudar o script para adicionar algumas
funcionalidades:
function Update () {
transform.Rotate(0, 5*Time.deltaTime, 0);
}

Se voc novo em fazer Scripts, est tudo bem se isso parece confuso. Estes so os
conceitos importantes para compreender:
1. function Update () {} um recipiente de cdigo que a Unity executa vrias vezes
por segundo (uma vez por quadro).
2. transform uma referncia para o Component Transform do GameObject
3. Rotate() uma funo contida no Component Transform.
4. Os nmeros entre as vrgulas representam os graus de rotao em torno de
cada eixo do espao 3D: X, Y e Z.
5. Time.deltaTime um membro da classe Time que nivela o movimento ao longo de um
segundo, ento o cubo vai girar na mesma velocidade, no importa quantos
quadros por segundo a sua mquina est renderizando. Portanto, 5 * Time.deltaTime
significa 5 graus por segundo.
Com isso em mente, ns podemos ler esse cdigo como todo frame, gire o Component
Transform do GameObject um pequena quantidade que no caso igual a cinco graus em volta
do eixo Y a cada segundo.
Voc pode acessar muitos Components diferentes da mesma maneira como j acessamos o
Transform. Voc tem que adicionar componentes ao GameObject usando o menu
Component.
O poder das variveis
Nosso script at agora sempre roda o cubo 5 graus a cada segundo. Podemos querer que ele
gire um nmero diferente de graus por segundo. Poderamos mudar o nmero e salvar, mas
depois temos que esperar para o script ser recompilado e temos que entrar no modo Play
antes de vermos os resultados. H uma maneira muito mais rpida de faz-lo. Podemos
experimentar a velocidade de rotao em tempo real durante o modo de jogo, e fcil de
fazer.
Em vez de digitar 5 para a funo Rotate (), vamos declarar uma varivel speed e usar isso
na funo. Alterar o script com o seguinte cdigo e salv-lo:
var speed = 5.0;
function Update () {
transform.Rotate(0, speed*Time.deltaTime, 0);
}

33

Agora selecione o cubo e olhe para o Inspector. Observe como a nossa varivel
speed(velocidade) aparece.

Esta varivel agora pode ser modificada diretamente no Inspector, como renomear um
arquivo no gerenciador de arquivos. Selecione-o, pressione Enter e altere o valor. Voc
tambm pode usar o boto direito ou esquerdo do mouse sobre o valor e arraste o mouse
para cima ou para baixo. Voc pode alterar a varivel, a qualquer momento, mesmo enquanto
o jogo est sendo executado.
Clique em Play e tente modificar o valor da varivel speed. A velocidade de rotao do cubo
ir mudar instantaneamente. Quando voc sair do modo de jogo, voc ver que suas
alteraes sero revertidas ao seu valor antes de entrar no modo de jogo. Desta forma, voc
pode jogar, ajustar e experimentar para encontrar o melhor valor, em seguida, aplicar esse
valor permanente.
Usando este mtodo de alterar o valor de uma varivel no Inspector significa que voc pode
re-utilizar um script em vrios objetos, cada um com um valor varivel diferente. Se voc
anexar o script para vrios cubos, e mudar a speed de cada cubo, todos eles vo girar em
velocidades diferentes, apesar de usar o mesmo script.

Acessando outros Components


Ao escrever um componente de script, voc pode acessar outros componentes do
GameObject de dentro do script.
Usando membros GameObjects
Voc pode acessar diretamente qualquer membro da classe GameObject. Se qualquer uma
das classes indicadas esto anexadas ao GameObject como um componente, voc pode
acessar o componente diretamente atravs do script, basta digitar o nome do membro. Por
exemplo, a digitar Transform equivalente a gameObject.transform. O gameObject
assumido pelo compilador, a menos que voc especificamente referencie um GameObject
diferente.
Digitando this estar acessando o componente de script que voc est escrevendo. Digitando
This.gameObject est se referindo ao GameObject que o script est anexado. Voc pode
acessar o mesmo GameObject simplesmente digitando gameObject. Logicamente, digitando
this.transform o mesmo que digitar Transform. Se voc quiser acessar um componente
que no includo como membro GameObject, voc tem que usar
gameObject.GetComponent ().
34

H muitos Components que podem ser acessados diretamente em qualquer script. Por
exemplo, se voc quiser acessar a funo Translate do componente Transform, voc pode
escrever apenas transform.Translate () ou gameObject.transform.Translate (). Isso funciona
porque todos os scripts esto ligados a um GameObject. Ento, quando voc escreve
transformar voc est implicitamente acessando o Component Transform do GameObject que
est ligado ao Script. Para ser mais explcito, voc escreve gameObject.transform. No h
nenhuma vantagem em um mtodo sobre o outro, tudo uma questo de preferncia para o
escritor.
Usando GetComponent()
H muitos componentes que no so referenciados diretamente como membros da classe
GameObject. Ento voc no pode acess-los implicitamente, voc tem que acess-los
explicitamente. Voc pode fazer isso chamando o GetComponent ("nome do
Component") e armazenar uma referncia para o resultado. Isso muito comum quando
voc quer fazer uma referncia a outro script anexado ao GameObject.
Finja que voc est escrevendo Script B e quer fazer uma referncia a um script A, que
anexado ao mesmo GameObject. Voc teria que usar GetComponent () para fazer esta
referncia. Em Script B, voc poderia simplesmente escrever:
scriptA = GetComponent("ScriptA");
Ento voc iria conseguir acessar qualquer uma das variveis do script A escrevendo
scriptA.variableName no Script B.
Para onde ir a partir daqui
Essa foi apenas uma breve introduo sobre como usar scripts dentro do Editor. Para mais
exemplos, veja os Tutorials que vm com a Unity. Voc tambm deve ler Scripting Overview
dentro da Script Reference, que contm uma introduo mais completa sobre scripts com a
Unity mais indicaes dentro da prpria referncia para informaes detalhadas. Se voc
estiver realmente perdido, no deixe de visitar o Unity Answers ou Unity Forums e perguntar
l. Algum est sempre disposto a ajudar.

35

5. Publicando Builds(Construes)
Em qualquer momento enquanto voc est criando seu jogo, voc pode querer ver como ele
parece quando voc construir e executar ele fora do editor como um jogo autnomo ou no
WebPlayer. Essa sesso ir explicar como acessar as Build Settings(Configuraes de
Construo) e como criar diferentes Builds de seus jogos.
File Build Settings... o item do menu para acessar a janela de configuraes de Build.
Ela mostra uma lista editvel de Scenes que sero includas quando voc construir seu jogo.

A janela Build Settings


A primeira vez que voc ver essa janela em um projeto, ela ir aparecer em vazia. Se voc
construir seu jogo enquanto essa lista estiver vazia, apenas a Scene aberta no momento ser
includa no Build. Se voc desejar construir rapidamente uma execuo de teste com apenas
um nico arquivo Scene, bastar construir com a lista de Scene vazia.
fcil adicionar arquivos de Scene lista para builds com mais de uma Scene. H duas
maneiras de adicionar elas. A primeira maneira clicar no boto Add current (Adicionar
atual). Voc ver a Scene aberta no momento aparecer na lista. A segunda maneira para
adicionar arquivos de Scene arrastar eles a partir do Project View para a lista.
36

Nesse ponto, observe que cada uma de suas Scenes tem um valor diferente de ndice. Scene
0 a primeira Scene que ser carregada quando voc construir o jogo. Quando voc desejar
carregar uma nova Scene, utilize Application.LoadLevel() dentro de seus scripts.
Se voc tiver adicionado mais de um arquivo de Scene e desejar reorganiza-los simplesmente
clique e arraste para cima ou para baixo de outras na lista at que voc tenha colocado elas
na ordem desejada.
Se voc deseja remover uma Scene da lista, clique para destacar a Scene e pressione Delete.
A Scene ir desaparecer da lista e no ser includa no Build.
Quando voc estiver pronto para publicar seu Build, selecione uma Platform (Plataforma) e
assegure que a logo da Unity ao lado da plataforma. Se no, ento clique no boto Switch
Platform (Alterar Plataforma) para deixar que a Unity saiba para qual plataforma voc
quer construir. Finalmente pressione o boto Build (Construir). Voc poder selecionar o
nome e a localizao do jogo usando uma janela de salvar arquivos padro. Quando voc
clicar em Save (Salvar) , Unity ir construir seu jogo prontamente. muito simples. Se voc
no tem certeza onde voc salvou o jogo construdo, considere que a Unity salvou ele dentro
da pasta raiz de projetos. Voc no pode salvar o Build dentro da pasta Assets.
Habilitando o checkbox(caixa de seleo) Debug Build (Depurar Construo), qualquer
executor autnomo ir habilitar a funcionalidade Profiler. Alm disso o jogo ser construdo
com smbolos de depurao, de modo que voc pode usar perfis ou ferramentas de
depurao de terceiros.

6. Concluso
Essa apostila apenas um resumo do contedo encontrado na prpria documentao da
Unity disponvel no site: http://unity3d.com/support/documentation/Manual/User
%20Guide.html . Vrios dos Tpicos citados na apostila e que no esto nela, podem ser
encontrados nesse link. A questo que a documentao nesse site em ingls, e o que foi
traduzido nessa apostila foram os tpicos Unity Bsico e Usando Scripts. Que essa apostila
ajude e qualquer outra informao que no estiver aqui, basta acessar o User Guide no link
acima.

37

Você também pode gostar