Apostila Minicurso Unity

download Apostila Minicurso Unity

of 33

Transcript of Apostila Minicurso Unity

  • 7/30/2019 Apostila Minicurso Unity

    1/33

    18/5/2011

    Fonte: http://unity3d.com/support/documentation/Manual/User%20Guide.htmlJennifer de Sousa Freitas GameDevelopers Brasil

    #GDB MINICURSO UNITY 3D BSICO

    Em parceria com:

  • 7/30/2019 Apostila Minicurso Unity

    2/33

    1

    Contedo1. Bom, o que a Unity? ................................................................................................................................................... 3

    1. Aprendendo a Interface ............................................................................................................................................ 4Primeira 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 ......................................................................................................................................... 19Lights ........................................................................................................................................................................... 19

  • 7/30/2019 Apostila Minicurso Unity

    3/33

    2

    4. GameObjects ........................................................................................................................................................... 20

    O que so GameObjects .............................................................................................................................................. 20

    O Relacionamento GameObject-Component ............................................................................................................. 20

    O Component Transform ........................................................................................................................................ 20

    Outros Components ................................................................................................................................................ 21

    Usando Components ............................................................................................................................................... 21Adicionando 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

  • 7/30/2019 Apostila Minicurso Unity

    4/33

    3

    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 etrabalha tambm com Shader Mode. OsubsistemadesimulaofsicaoPhysX,tambmdaNVidia. Ela usatambm 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 queexclui o trabalho de ter que exportar alguma arte antes de importar na Unity. Ela aceita os arquivos dos seguintesprogramas:

    Blender: .blendAutodesk 3DS Max: .maxAutodesk Maya: .mb or .maMaxon CINEMA 4D: .c4dCheetah3D: .jasLuxology Modo 3D: .lxo *a partir do modo 501NewTek 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 (arquivos2D) 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.

  • 7/30/2019 Apostila Minicurso Unity

    5/33

    4

    1.Aprendendo a InterfacePrimeira navegao

    Vamos comear aprendendo a interface da Unity. Se voc no tiver aberto a Unity ainda, voc pode encontra-ladentro de Iniciar Programas Unity no Windows, ou Aplicaes Unity no Mac. O Editor da Unity iraparecer. No tenha pressa para examinar a interface do Editor da Unity e se familiarizar com ela. A Janela Principaldo Editor composta de vrias abas chamadas de Views(Vises). H vrios tipos de Views na Unity, cada uma comum propsito especfico.

    Project View (Viso do Projeto)

  • 7/30/2019 Apostila Minicurso Unity

    6/33

    5

    Todo projeto Unity contm uma pasta de Assets (ativos). Os contedos dessa pasta so apresentados no ProjectView. 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 dentrodo Project View, ou usar Assets Import New Asset (Ativos Importar Novo Ativo). Seu Asset agora est prontopara ser utilizado em seu jogo.

    Scenes (cenas) tambm so armazenados no Project View. Pense nelas como nveis individuais. Por exemplo, aIslands Scene (cena da Ilha) carregada por padro quando a Unity executada da primeira vez. Para criar uma novaScene, use Control Ctrl +N (Command+N no Mac). Para salvar a scene corrente dentro do Project View, useControl Ctrl +S (Command+S no Mac).

    Alguns Assets do jogo precisam ser criados de dentro da Unity. Para fazer isso, use a drop-down (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. Vocpode renomear qualquer Asset/Folder pressionando F2 no Windows, ou Enter no Mac, ou com dois cliquesespaados no nome do Asset. Se voc segurar a tecla Alt enquanto voc expande ou contrai algum diretrio, todosos subdiretrios tambm sero expandidos ou contrados.

  • 7/30/2019 Apostila Minicurso Unity

    7/33

    6

    Hierarchy View (Viso da Hierarquia)

    A Hierarchy contm todo GameObject (Objeto de jogo) na Scene corrente. Alguns desses so instncias diretas dearquivos de Assets como modelos 3D, e outros so instncias de Prefabs objetos customizados que iro compormuito do seu jogo. Voc pode selecionar e paternizar objetos na Hierarchy. Como objetos so adicionados eremovidos 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 desejadosobre o pai desejado na Hierarchy. O filho ir herdar o movimento e a rotao de seu pai. Voc pode agora expandire contrair o pai para ver seus filhos na Hierarchy sem afetar seu jogo.

    Dois objetos sem Pai

    Um objeto Paternizado a outro

  • 7/30/2019 Apostila Minicurso Unity

    8/33

    7

    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 osambientes, o jogador, as cmeras, inimigos, e todos os outros GameObjects. Manobra e manipulao de objetos

    dentro da Scene View so algumas das funes mais importantes da Unity, ento importante estar apto a faz-losrapidamente.

  • 7/30/2019 Apostila Minicurso Unity

    9/33

    8

    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 teclasWASD (mais Qe 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 nocentro 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 estiverusando 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, epermite 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 parao Isometric Mode (Modo Isomtrico). Enquanto estiver no Isometric Mode, voc pode clicar e arrastar com o botodireito para girar, e Alt + clicar e arrastar para deslocar. Para sair desse modo, clique no meio do Scene Gizmo. Vocpode tambm utilizar Shift+Clicar no meio do Scene Gizmo a qualquer momento para alternar para o IsometricMode.

  • 7/30/2019 Apostila Minicurso Unity

    10/33

    9

    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 dimensionarGameObjects individuais. Cada um tem um Gizmo correspondente que ir aparecer em torno do GameObjectselecionado 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 docomponente 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), emuitos outros. Ela tambm ir permitir que voc veja (e oua) em jogo, a iluminao, os elementos do jogo e som na

    Scene View.

  • 7/30/2019 Apostila Minicurso Unity

    11/33

    10

    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 irexecutar. Enquanto estiver no Play mode, algumas mudanas voc pode fazer temporariamente, e sero reiniciadasquando 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). Aquivoc fora a proporo da janela Game View para diferentes valores. Ele pode ser usado para testar como seu jogoir ser exibido em monitores de diferentes propores.

    Mais a direita o alternador Maximize on Play (Maximizar durante o jogo). Enquanto estiver habilitado, o GameView ir maximizar de 100% da sua janela do Editor para uma visualizao legal em tela cheia quando voc entrarno Play mode.

    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 funesdas classes de Gizmo.

  • 7/30/2019 Apostila Minicurso Unity

    12/33

    11

    Finalmente ns temos o boto Stats(Estatsticas). Esse mostra a janela de estatsticas da renderizao que muitotil para otimizar a performance dos grficos.

    Estatsticas da Game View de seu jogo

    Inspector(Inspetor)

  • 7/30/2019 Apostila Minicurso Unity

    13/33

    12

    Jogos na Unity so feitos de mltiplos GameObjects que contm meshes (malhas), scripts, sounds (sons), ou outroelemento 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 relacionamentoGameObject-Component, e muito importante saber.

    Qualquer propriedade que mostrada no Inspector pode ser diretamente modificada. Mesmo variveis de scriptspodem ser modificadas sem alterao do prprio script. Voc pode usar o Inspector para mudar variveis em tempode 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 GameObjectou Prefab dentro do Inspector para fazer a associao.

  • 7/30/2019 Apostila Minicurso Unity

    14/33

    13

    Clique na interrogao do lado de qualquer nome de componente no Inspector para carregar sua pgina dereferncia.

    Adicionar Componentes a partir do menu Component

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

  • 7/30/2019 Apostila Minicurso Unity

    15/33

    14

  • 7/30/2019 Apostila Minicurso Unity

    16/33

    15

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

    Clique emApply (Aplicar) para reimportar seu Asset.

  • 7/30/2019 Apostila Minicurso Unity

    17/33

    16

    Utilize a caixa suspensa Layer (Camada) para associar uma camada de renderizao para o GameObject. Utilize acaixa suspensa Tag para associar uma etiqueta a esse GameObject.

    Prefabs

    Se voc tiver um Prefab selecionado, alguns botes adicionais estaro disponveis no Inspector. Para maisinformaes 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 emcaptulos separados.

  • 7/30/2019 Apostila Minicurso Unity

    18/33

    17

    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 comouma viso geral de aes bsicas.

    Criar o Asset Bruto

    Use qualquer pacote de modelagem 3D suportado pela Unity (descritos no primeiro captulo dessa apostila). Porexemplo, 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 seuprojeto. Quando voc abre o projeto Unity, o Asset ser detectado e importado dentro do projeto. Quando vocolhar na Project View, voc ver o Asset localizado l, exatamente onde voc o salvou. Por favor, note que a Unityusa 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 iroaparecer 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 aScene. Quando voc arrasta o mesh para a Scene, voc est criando um GameObject (Objeto de Jogo) que tem umMesh Renderer Component (Componente de Renderizao da Malha). Se voc estiver trabalhando com umatextura 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)).

    Criando um Prefab

    Prefabs so uma coleo de GameObjects e Components que podem ser reutilizados em suas Scenes. Muitosobjetos idnticos podem ser criados a partir de um nico Prefab, chamado instancing (instncia). Pegue rvorescomo exemplo. Criando um Prefab de rvore, permitir que voc instancie muitas rvores idnticas e colocar elasem 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

  • 7/30/2019 Apostila Minicurso Unity

    19/33

    18

    mudana. Voc tambm pode fazer mudanas em uma instncia, e escolher GameObject -> Apply changes toPrefab 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, vocpode fazer um Prefab de GameObject de nvel superior (ou root raiz), e reutilizar o conjunto completo deGameObjects.

    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 desejatransformar em Prefab. Arraste ele at o novo Prefab, e voc poder ver o texto do nome dos GameObjects mudarpara 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, apenasd duplo clique nele a partir do Project View. A aplicao adequada ir iniciar, e voc poder fazer qualquermudana que voc quiser. Quando voc estiver terminado de alterar ele, apenas o salve. Ento, quando vocalternar 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 precisasaber 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, comisso voc pode procurar pelos rtulos adicionados a cada asset no campo de pesquisa no Project View, ou no ObjectSelector.

    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.

  • 7/30/2019 Apostila Minicurso Unity

    20/33

    19

    3. Criando ScenesAs Scenes contm os objetos de seu jogo. Elas podem ser usadas para criar um menu principal, fases individuais, equalquer outra coisa. Pense em cada um arquivo Scene como um nico nvel (fase). Em cada Scene, voc ir colocarseus 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 poderpida 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 deseu 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 adicionaisa ele atravs do uso de Components. Scripts so um tipo de Component. Para adicionar um Component, apenasdestaque seu GameObject e selecione um Component a partir do menu Component. Voc ver ento o Componentaparecer 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 utilizarGameObject 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 noInspector 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 maiscmeras. Voc pode posicionar, girar, e adicionar um pai as cmeras assim como qualquer outro GameObject. Umacmera apenas um GameObject com um Component de Cmera anexado a ele. Portanto ele pode fazer qualquercoisa que um GameObject normal pode fazer, e ento algumas funes especficas de cmera tambm. H tambmalguns scripts de cmera teis que so instalados com o Pacote Standard Assets (Assets Padro) quando voc criaum 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 tiposde Lights, e todas elas comportam um pouco diferente umas das outras. O que importa que elas adicionem aatmosfera e o ambiente ao seu jogo. Iluminaes diferentes podem mudar completamente o humor do seu jogo, e autilizao de Lights efetivamente ser um assunto importante para aprender.

  • 7/30/2019 Apostila Minicurso Unity

    21/33

    20

    4. GameObjectsGameObjects so os objetos mais importantes na Unity. muito importante entender o que um GameObject , ecomo 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 depropriedades especiais antes que eles possam se tornar um personagem, um ambiente, ou um efeito especial. Mascada um desses objetos faz muitas coisas diferentes. Se cada objeto um GameObject, como podemos diferenciarum objeto de power-up (adicionar poder) interativo de uma sala de esttica? O que torna esses GameObjectsdiferentes uns dos outros?

    A resposta a esta pergunta que GameObjects so recipientes. Eles so caixas vazias que pode conter diferentespeas que compem uma ilha com lightmap (mapa de luz) ou um carro com direo fsica. Assim para realmentecompreender 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 comodiferentes ingredientes que compem a sua receita de jogabilidade. Voc tambm pode fazer seus prpriosComponents usando Scripts.

    O Relacionamento GameObject-Component

    Conforme descrito anteriormente, um GameObject contm Components. Vamos explorar essa relao discutindoum GameObject e seu Component mais comum - o Component Transform (Transformao). Com qualquer Sceneaberta 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). CadaGameObject tambm contm um Component Transform.

    O Component Transform

    impossvel criar um GameObject na Unity, sem um Component Transform. O Component Transform um doscomponentes mais importantes, uma vez que todas as propriedades de transformao do GameObject so ativadaspelo uso deste Component. Ele define a posio, rotao e escala do GameObject no mundo do jogo/Scene View. Seum GameObject no tem um Component Transform, ele no seria nada mais do que algumas informaes namemria do computador. Ele efetivamente no existiria no mundo.

    O Component Transform tambm permite um conceito chamado Paternidade, que utilizado pelo do Unity Editor e

    uma parte critica do trabalho com GameObjects.

  • 7/30/2019 Apostila Minicurso Unity

    22/33

    21

    Outros Components

    O Component Transform costuma ser fundamental a todos os GameObjects, de modo que cada GameObject temum. 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 dediferentes 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 fornecemfuncionalidades 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 osdiferentes 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 funcionaisde cada GameObject.

    O GameObject um recipiente para muitos Components diferentes. Por padro, todos os GameObjectsautomaticamente 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 umlugar no mundo. Tente criar um GameObject vazio agora como um exemplo. Clique no menu GameObject CreateEmpty (Criar Vazio). Selecione o GameObject novo, e olhe para o Inspector.

  • 7/30/2019 Apostila Minicurso Unity

    23/33

    22

    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 GameObjectselecionado. Como Components so adicionados e removidos, o Inspector vai sempre mostrar-lhe quais estoanexados 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 issoagora adicionando um Rigidbody ao GameObject vazio que acabamos de criar. Selecione-o e escolhaComponentPhysicsRigidbody (Componente FsicaCorpo Rigido) no menu. Quando voc o fizer, voc vaiver as propriedades do Rigidbody aparecem no Inspector. Se voc pressionar Play enquanto o GameObject vazioainda est selecionado, voc pode ter uma pequena surpresa. Experimente e observe como o Rigidbody temfuncionalidade para o GameObject vazio. (O Component y do GameObject comea a diminuir. Isso ocorre porque oengine 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 Componentstrabalham melhor em combinao com outros. Por exemplo, o Rigidbody funciona com qualquer Collider. ORigidbody controla a transformao atravs da engine fsica NVIDIA PhysX, e o Collider permite que o RigidBodycolida e interaja com outros colisores. Um outro exemplo de combinaes de Components um Particle System(Sistema de partculas). Eles usam um Particle Emitter (Emissor de partculas), Particle Animator (Animador dePartculas) 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 pginade referncia para um Componente de Unity clicando no pequeno (?) no cabealho do Component no Inspector.

    http://unity3d.com/support/documentation/Components/Components.htmlhttp://unity3d.com/support/documentation/Components/Components.htmlhttp://unity3d.com/support/documentation/Components/Components.html
  • 7/30/2019 Apostila Minicurso Unity

    24/33

    23

    Editando Components

    Um dos grandes aspectos dos componentes a flexibilidade. Quando voc anexar um componente a umGameObject, 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 depropriedades: Valores e Referncias.

    Olhe a imagem abaixo. um GameObject vazio, com um Audio Source (fonte de udio). Todos os valores da fonte deudio no Inspector so os valores padro.

    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 udioque referenciado na propriedade Audio Clip. Se nenhuma referncia feita, ocorrer um erro porque no h

  • 7/30/2019 Apostila Minicurso Unity

    25/33

    24

    nenhum udio a ser tocado. Voc deve fazer referncia ao arquivo dentro do Inspector. Isso to fcil como arrastarum arquivo de udio do Project View para a propriedade Reference ou usando o Seletor de objeto.

    Agora, um arquivo de efeito sonoro referenciado na propriedadeAudio 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 noInspector. 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 qualquerGameObject. 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 desalto para ver o que acontece. Ento, sem sair do Play Mode voc pode alter-lo novamente e ver os resultadosdentro de segundos. Quando voc sair do modo de jogo, suas propriedades voltaro aos valores pr-Play Mode, para

  • 7/30/2019 Apostila Minicurso Unity

    26/33

    25

    voc no perder nenhum trabalho. Esse fluxo de trabalho lhe d um poder incrvel para experimentar, ajustar eaperfeioar o seu jogo sem investir muito tempo em ciclos de iterao. Experimente-o com qualquer propriedadeem 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 deque 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 comoum componente. Isso ocorre porque os scripts se tornam componentes quando eles so salvos - um script apenasum 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 irexecutar 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 feitosescrevendo simples scripts de comportamento em JavaScript, C #, ou Boo (Python). Voc pode usar uma ou todas aslinguagens 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 apartir de dentro da Unity. Para criar um novo script, abrir AssetsCreateJavaScript (ou AssetsCreateC SharpScript ou AssetsCreateBoo Script) no menu principal. Isso ir criar um novo script chamadoNewBehaviourScript e coloc-lo na pasta selecionada no Project View. Se nenhuma pasta estiver selecionada noProject View, o script ser criado na raiz.

  • 7/30/2019 Apostila Minicurso Unity

    27/33

    26

    Voc pode editar o script clicando duas vezes sobre ele no Project View. Isso iniciar seu editor padro selecionadonas 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 oscript 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 ocdigo seja executado ainda. Temos que anexar o script a um GameObject ativo na Scene antes de ele serexecutado.

    Anexando Scripts a GameObjects

    Salve o Script acima e crie um novo objeto na Scene selecionando GameObject Create Other Cube. Isso ircriar um novo GameObject chamado Cube(Cubo) na Scene atual.

  • 7/30/2019 Apostila Minicurso Unity

    28/33

    27

    Agora arraste o Script do Project View para o Cubo (na Scene ou na Hierarchy View, no importa) Voc tambmpode selecionar o cubo e escolher ComponentScriptsNew Behaviour Script. Qualquer um desses mtodos voanexar o Script ao Cubo. Todo Script que voc criar vai aparecer no menu ComponentsScripts. Se voc tivermudado 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.

  • 7/30/2019 Apostila Minicurso Unity

    29/33

    28

    Pressione Playpara testar sua criao. Voc deveria ver o texto Hello World aparecendo ## dos botesPlay/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 paracompreender:

    1. function Update () {} um recipiente de cdigo que a Unity executa vrias vezes por segundo (uma vez porquadro).

    2. transform uma referncia para o Component Transform do GameObject3. 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 estrenderizando. 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 temque 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 nmerodiferente de graus por segundo. Poderamos mudar o nmero e salvar, mas depois temos que esperar para o scriptser recompilado e temos que entrar no modo Play antes de vermos os resultados. H uma maneira muito maisrpida de faz-lo. Podemos experimentar a velocidade de rotao em tempo real durante o modo de jogo, e fcilde fazer.

    Em vez de digitar 5 para a funo Rotate (), vamos declarar uma varivel speed e usar isso na funo. Alterar o scriptcom o seguinte cdigo e salv-lo:

    var speed = 5.0;

    function Update () {

    transform.Rotate(0, speed*Time.deltaTime, 0);

    }

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

  • 7/30/2019 Apostila Minicurso Unity

    30/33

    29

    Esta varivel agora pode ser modificada diretamente no Inspector, como renomear um arquivo no gerenciador dearquivos. Selecione-o, pressione Enter e altere o valor. Voc tambm pode usar o boto direito ou esquerdo domouse 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 valorantes de entrar no modo de jogo. Desta forma, voc pode jogar, ajustar e experimentar para encontrar o melhorvalor, 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 emvrios objetos, cada um com um valor varivel diferente. Se voc anexar o script para vrios cubos, e mudar a speedde 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 indicadasesto anexadas ao GameObject como um componente, voc pode acessar o componente diretamente atravs doscript, basta digitar o nome do membro. Por exemplo, a digitar Transform equivalente a gameObject.transform. OgameObject 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 estse referindo ao GameObject que o script est anexado. Voc pode acessar o mesmo GameObject simplesmentedigitando gameObject. Logicamente, digitando this.transform o mesmo que digitar Transform. Se voc quiseracessar um componente que no includo como membro GameObject, voc tem que usargameObject.GetComponent ().

    H muitos Components que podem ser acessados diretamente em qualquer script. Por exemplo, se voc quiseracessar a funo Translate do componente Transform, voc pode escrever apenas transform.Translate () ougameObject.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 queest 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.

  • 7/30/2019 Apostila Minicurso Unity

    31/33

    30

    Usando GetComponent()

    H muitos componentes que no so referenciados diretamente como membros da classe GameObject. Ento vocno pode acess-los implicitamente, voc tem que acess-los explicitamente. Voc pode fazer isso chamando oGetComponent ("nome do Component") e armazenar uma referncia para o resultado. Isso muito comum quandovoc 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 mesmoGameObject. 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 ScriptB.

    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 contmuma introduo mais completa sobre scripts com a Unity mais indicaes dentro da prpria referncia parainformaes detalhadas. Se voc estiver realmente perdido, no deixe de visitar o Unity Answers ou Unity Forums eperguntar l. Algum est sempre disposto a ajudar.

  • 7/30/2019 Apostila Minicurso Unity

    32/33

    31

    5. Publicando Builds(Construes)Em qualquer momento enquanto voc est criando seu jogo, voc pode querer ver como ele parece quando vocconstruir e executar ele fora do editor como um jogo autnomo ou no WebPlayer. Essa sesso ir explicar comoacessar 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 listaeditvel 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 jogoenquanto essa lista estiver vazia, apenas a Scene aberta no momento ser includa no Build. Se voc desejarconstruir rapidamente uma execuo de teste com apenas um nico arquivo Scene, bastar construir com a lista deScene vazia.

    fcil adicionar arquivos de Scene lista para builds com mais de uma Scene. H duas maneiras de adicionar elas. Aprimeira maneira clicar no boto Add current (Adicionar atual). Voc ver a Scene aberta no momento aparecerna lista. A segunda maneira para adicionar arquivos de Scene arrastar eles a partir do Project View para a lista.

    Nesse ponto, observe que cada uma de suas Scenes tem um valor diferente de ndice. Scene 0 a primeira Sceneque ser carregada quando voc construir o jogo. Quando voc desejar carregar uma nova Scene, utilizeApplication.LoadLevel() dentro de seus scripts.

  • 7/30/2019 Apostila Minicurso Unity

    33/33

    Se voc tiver adicionado mais de um arquivo de Scene e desejar reorganiza-los simplesmente clique e arraste paracima 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 desaparecerda 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 aUnity saiba para qual plataforma voc quer construir. Finalmente pressione o boto Build (Construir). Voc poderselecionar 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 Builddentro da pasta Assets.

    Habilitando o checkbox(caixa de seleo) Debug Build (Depurar Construo), qualquer executor autnomo irhabilitar a funcionalidade Profiler. Alm disso o jogo ser construdo com smbolos de depurao, de modo que vocpode usar perfis ou ferramentas de depurao de terceiros.

    6. ConclusoEssa 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 eque no esto nela, podem ser encontrados nesse link. A questo que a documentao nesse site em ingls, e oque foi traduzido nessa apostila foram os tpicos Unity Bsico e Usando Scripts. Que essa apostila ajude e qualqueroutra informao que no estiver aqui, basta acessar o User Guide no link acima.

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