1                             PONG!                                     Unity 3D                             Roteiro de Ap...
2ResumoEste roteiro apresenta o projeto PONG! em todos os seus passos.Requerimentos Básicos-Unity 3D-Monodevelop (vem com ...
31 - Criação do CenárioCriaremos um novo projeto no Unity 3D com o pacote de PhysicsMaterials.unityPackage.Começaremos pel...
4Agora criaremos a esfera nomeada Ball. Está será posicionada em X:0 Y:0 Z:0 comuma escala de X:5 Y:5 Z:5. Aplicaremos ent...
5Agora, para iluminar o cenário, criaremos um foco de luz (Point Light) eposicionaremos na frente da câmera X:0 Y:0 Z:-20 ...
6Duplicaremos este item, renomeando-o para LeftPaddle e posicionando-o para X:45Y:0 Z:0.FOTO 7Aplicaremos agora as textura...
7O mesmo será feito para os paddles, porém com a textura tijolo.FOTO 9Já as paredes, iremos aplicar uma cor sólida com o R...
8FOTO 11Pronto, agora a cena está completa. Precisamos definir alguns limitadores queimpeçam que a bola saia da cena e não...
9FOTO 12Criaremos mais cinco deste objeto e alteraremos seus nomes/escala/posição para:                    Nome           ...
102 - Programação dos ObjetosAgora que o cenário está criado e configurado, vamos aplicar a programaçãonecessária para que...
11               //Aplica a velocidade inicial para a esquerda, aplicando uma inclinaçãoaleatória               rigidbody....
12Agora que a programação está feita, necessitamos definir o recebimento de controlespara o jogo.Para isto, vamos acessar ...
133 - Desenvolvendo o Menu PrincipalPronto, o jogo em si está parcialmente completo. Vamos criar uma nova cena eprogramar ...
14Triplicaremos o título para gerar os botões :Nome                  Posição                   EscalaSTART GAME           ...
15Para controlar os botões, vamos criar um script nomeado MenuButtons.using UnityEngine;using System.Collections;public cl...
16Agora vamos acoplar o script aos botões e marcar a opção “IsQuit” no botão QUITGAME.FOTO 17Por ultimo, devemos adicionar...
174 - Build & PlayAgora, tudo pronto, vamos nos divertir! Vamos no menu FILE -> BUILD SETTINGS,adicionando as duas cenas c...
Upcoming SlideShare
Loading in...5
×

Tutorial Desenvolvendo Pong no Unity 3D - Victory Island Studios

8,524

Published on

Tutorial de como desenvolver o jogo PONG no Unity 3D.

Autor:
Victory Island Studios

Quer saber mais sobre desenvolvimento de jogos e eventos? Visite nossas páginas:

http://www.victoryisland.com.br
http://www.facebook.com/pages/Victory-Island-Studios/113427758737553

Published in: Education
2 Comments
8 Likes
Statistics
Notes
No Downloads
Views
Total Views
8,524
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
378
Comments
2
Likes
8
Embeds 0
No embeds

No notes for slide

Tutorial Desenvolvendo Pong no Unity 3D - Victory Island Studios

  1. 1. 1 PONG! Unity 3D Roteiro de Apresentação 1. Criação do Cenário Criação dos Limitadores superior e inferior Criação dos Tiles/Pads Criação da Esfera Criação das Paredes Criação do Ponto de Luz Aplicação das Texturas 2. Programação dos Objetos Programação da Esfera Programação dos Tiles/Pads Programação dos Sons 3. Menu Principal Criação do Cenário do Menu Criação dos Menus Programação dos Menus 4. Build & Play
  2. 2. 2ResumoEste roteiro apresenta o projeto PONG! em todos os seus passos.Requerimentos Básicos-Unity 3D-Monodevelop (vem com o unity 3d) ou Visual Studio-Computador que suporte as configurações mínimas do Unity 3D.IntroduçãoAtravés deste roteiro você poderá construir um jogo de Pong com Unity 3D. Ospassos estão divididos em quatro tópicos primários, Criação do Cenário, Programaçãodos Objetos, Desenvolvendo o Menu Principal e, por fim, Build & Play. O primeirotópico, Criação do Cenário, será o momento em que o cenário será populado, criando-se objetos que serão necessários para o jogo e texturizando-os. O segundo tópico,Programação dos Objetos, tratará da codificação dos scripts/códigos para ofuncionamento correto dos objetos e do jogo. O terceiro tópico, Desenvolvendo oMenu Principal, é onde iremos criar o menu principal com botões e sua programação.O último tópico, Build & Play, é simplesmente explicando um pouco sobre acompilação do jogo, tornando-se executável em várias plataformas.
  3. 3. 31 - Criação do CenárioCriaremos um novo projeto no Unity 3D com o pacote de PhysicsMaterials.unityPackage.Começaremos pela parte mais simples, criar 2 limitadores para que a esfera continuedentro de uma certa área. Criaremos um cubo nomeado UpperWall e alteraremos suaescala (SCALE) para X:100 Y:1 Z:10. Durante a criação, iremos posiciona-lo(POSITION) em X:0 Y:35 Z:0 . Também, aplicaremos o componente RigidBody,desmarcando a opção “Use Gravity” e marcando todas as opções em “Constraints”,“Freeze Position” e “Freeze Rotation”.FOTO 1Duplicaremos o primeiro e renomearemos para LowerWall. Posicionado-o em X:0 Y:-35 Z:0.FOTO 2
  4. 4. 4Agora criaremos a esfera nomeada Ball. Está será posicionada em X:0 Y:0 Z:0 comuma escala de X:5 Y:5 Z:5. Aplicaremos então o componente RigidBody, para quepossamos trabalhar com física. Desabilitaremos a opção “Use Gravity”. Também,devemos alterar o material da esfera, dentro da opção “Sphere Collider”, para“Bouncy”.FOTO 3Para obter uma melhor visualização in-game, iremos alterar a posição da camêraprincipal (Main Camera) para X:0 Y:0 Z:-70FOTO 4
  5. 5. 5Agora, para iluminar o cenário, criaremos um foco de luz (Point Light) eposicionaremos na frente da câmera X:0 Y:0 Z:-20 . Definindo seu alcance (RANGE)como 100.FOTO 5Parte da cena já está pronta, agora falta criar as barreiras moveis(Tiles/Pads/Paddles) , que serão controladas pelos jogadores.Criaremos outro cubo, porém nomeado RightPaddle.Sua escala é de X:5 Y:15 Z:10 e posição X:-45 Y:0 Z:0.Aplicaremos então o componente RigidBody novamente e desmarcamos a opção“Use Gravity”, com as Constraints Freeze Position (X e Z) e Freeze Rotation (X, Y eZ).FOTO 6
  6. 6. 6Duplicaremos este item, renomeando-o para LeftPaddle e posicionando-o para X:45Y:0 Z:0.FOTO 7Aplicaremos agora as texturas, começando pela esfera. Criaremos um material novocom a textura “basket”. Agora arrastamos este material até o objeto “Ball” e pronto, oobjeto está texturizado.FOTO 8
  7. 7. 7O mesmo será feito para os paddles, porém com a textura tijolo.FOTO 9Já as paredes, iremos aplicar uma cor sólida com o R:73 G:255 B:10 A:255.FOTO 10
  8. 8. 8FOTO 11Pronto, agora a cena está completa. Precisamos definir alguns limitadores queimpeçam que a bola saia da cena e não seja resetada. Assim devemos criar barreiras.Criaremos um objeto vazio nomeado “Barriers”, cujo o objetivo é agrupar as outrasbarreiras que criaremos.Criaremos mais um objeto vazio, porém, nomeado BackBarrier e definirmos suaescala como X:100 Y:100 Z:1 e colocaremos este objeto na posição X:0 Y:0 Z:-50.Também, deverá ser adicionado o componente “Box Collider” e deve-se marcar aopção “Is Trigger”.
  9. 9. 9FOTO 12Criaremos mais cinco deste objeto e alteraremos seus nomes/escala/posição para: Nome Escala Posição FrontBarrier X:100 Y:100 Z:1 X:0 Y:0 Z:50 LeftBarrier X:1 Y:100 Z:100 X:50 Y:0 Z:0 RightBarrier X:1 Y:100 Z:100 X:-50 Y:0 Z:0 LowerBarrier X:100 Y:1 Z:100 X:0 Y:-50 Z:0 TopBarrier X:100 Y:1 Z:100 X:0 Y:50 Z:0Pronto, agora o cenário está finalizado e com todos os objetos que vamos necessitar.
  10. 10. 102 - Programação dos ObjetosAgora que o cenário está criado e configurado, vamos aplicar a programaçãonecessária para que o jogo rode conforme desejamos. Criaremos scripts em C# paraaplicarmos funcionalidades e controles aos objetos do cenário.Primeiro criaremos o script (C#) do objeto BALL.O script abaixo fará o controle deste objeto:using UnityEngine;using System.Collections;public class Ball : MonoBehaviour{ private const float velocityIncrement = 1.001f; void Start() { Reset(); } void OnTriggerEnter() { Reset(); } void Update() { rigidbody.velocity *= velocityIncrement; } private void Reset() { // Valor aleatório entre 1 e 2 int direction = RandomNumber(1, 3); //Caso retorno = 1 if (direction.Equals(1)) { //reinicia a posição da Ball transform.position = Vector3.zero; //Aplica a velocidade inicial para a direita, aplicando uma//inclinação aleatória rigidbody.velocity = new Vector3(60, RandomNumber(-25,25), 0); } //Caso retorno = 2 else //return 2 { //reinicia a posição da Ball transform.position = Vector3.zero;
  11. 11. 11 //Aplica a velocidade inicial para a esquerda, aplicando uma inclinaçãoaleatória rigidbody.velocity = new Vector3(-60, RandomNumber(-25, 25), 0); } } private int RandomNumber(int min, int max) { int ret = Random.Range(min, max); return ret; }}Em seguida, criaremos o script para movimentação das barreiras móveis (RightPaddlee LeftPaddle) e iremos acoplar este mesmo script aos 2 Paddles.using UnityEngine;using System.Collections;public class verticalKeyboardControl : MonoBehaviour { //Axis Vertical public string axisName = "Vertical"; public float speed; void Update () { //variavel delta utilizada para aplicar a velocidade no eixo Y (mover os//Paddles verticalmente) var delta = new Vector3(0, speed, 0); //Caso o "controle" esteja com uma inclinação para cima, move//para cima if (Input.GetAxis(axisName) >= .001) delta *= 1f; //Caso o "controle" esteja com uma inclinação para baixo, move//para baixo else if (Input.GetAxis(axisName) <= -.001) delta *= -1f; else //Caso o "controle" esteja imóvel, não altera delta delta = Vector3.zero; //Aplica esta "impulso" sobre a posição do objeto,//independentemente de seu sentido transform.position += delta; }}
  12. 12. 12Agora que a programação está feita, necessitamos definir o recebimento de controlespara o jogo.Para isto, vamos acessar o menu EDIT -> PROJECT SETTINGS -> INPUT , ondeiremos deletar todas os sub-grupos, deixando apenas os dois nomeados “VERTICAL”.FOTO 13Renomearemos um para “Controle1” e outro para “Controle2” e definiremos para cadaum os itens “Positive Button” e “Negative Button”, respectivamente, para que abarreira móvel possa subir e descer.Observar que nos objetos RightPaddle e LeftPaddle o script já estará atuando, porémserá necessário alterar a velocidade (o valor 1) e o Axis Name (nome do eixo) para oeixo que o moverá (Controle1 e Controle2, respectivamente.Além disso, você precisa se certificar que o atributo “Type” esteja configurado como“Key or Mouse Button” em ambos os players.Também precisaremos adicionar MASSA aos Paddles, para que eles não saiamvoando ao serem acertados pela bola.Utilizar o valor 10000.
  13. 13. 133 - Desenvolvendo o Menu PrincipalPronto, o jogo em si está parcialmente completo. Vamos criar uma nova cena eprogramar o menu principal.A criação é bem simples, primeiro criamos uma base. Está será um cubo com asdimensões X:800 Y:1 Z:800 e posição X:0 Y:-8 Z:0 .Também definiremos a câmera para a posição X:0 Y:15 Z:-70.FOTO 14Agora vamos para os itens do menu. Primeiro vamos buscar uma fonte na pasta defontes do Windows e copiaremos o arquivo FONTE.ttf para a pasta ../projeto/assets .A fonte irá aparecer automaticamente no projeto dentro do Unity e em suasconfigurações devemos alterar o tamanho da fonte (FONT SIZE) para 40.Então criaremos um novo objeto “3D Text” nomeado PONG, aplicaremos a fonteescolhida e posicionaremos este objeto em X:-10 Y:32 Z:-10 .
  14. 14. 14Triplicaremos o título para gerar os botões :Nome Posição EscalaSTART GAME X:-1 Y:10 Z:-10 1CREDITS X:-1 Y:6 Z:-10 1QUIT GAME X:-1 Y:2 Z:-10 1FOTO 16
  15. 15. 15Para controlar os botões, vamos criar um script nomeado MenuButtons.using UnityEngine;using System.Collections;public class MenuButtons : MonoBehaviour { public bool isQuit; void OnMouseEnter() { renderer.material.color = Color.blue; } void OnMouseExit() { renderer.material.color = Color.white; } void OnMouseDown() { if (isQuit) { Application.Quit(); } else { Application.LoadLevel("Game"); } }}
  16. 16. 16Agora vamos acoplar o script aos botões e marcar a opção “IsQuit” no botão QUITGAME.FOTO 17Por ultimo, devemos adicionar o Componente Box Collider nos nossosbotões, para que eles sejam capazes de entender quando o cursor domouse passará sobre eles.
  17. 17. 174 - Build & PlayAgora, tudo pronto, vamos nos divertir! Vamos no menu FILE -> BUILD SETTINGS,adicionando as duas cenas criadas (MainMenu e Game, nesta exata sequência), como botão “Add Current” .Abra novamente a Cena do jogo e faça o mesmo que descrito acima, para adicionartambém a cena de jogo. Observe que o MainMenu é a cena de numero 0, enquanto oGame é a cena de numero 1.Escolhemos então a plataforma “PC and MAC Standalone” e a “Target Plataform”como Windows.Clicamos no botão BUILD AND RUN!FOTO 18Agorá é só jogar!

×