17
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

Tutorial Desenvolvendo Pong no Unity 3D - Victory Island Studios

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Tutorial Desenvolvendo Pong no Unity 3D - Victory Island Studios

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

Page 2: Tutorial Desenvolvendo Pong no Unity 3D - Victory Island Studios

2

Resumo

Este 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ção

Através deste roteiro você poderá construir um jogo de Pong com Unity 3D. Os passos estão divididos em quatro tópicos primários, Criação do Cenário, Programação dos Objetos, Desenvolvendo o Menu Principal e, por fim, Build & Play. O primeiro tó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 o funcionamento correto dos objetos e do jogo. O terceiro tópico, Desenvolvendo o Menu 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 a compilação do jogo, tornando-se executável em várias plataformas.

Page 3: Tutorial Desenvolvendo Pong no Unity 3D - Victory Island Studios

3

1 - Criação do Cenário

Criaremos um novo projeto no Unity 3D com o pacote de Physics Materials.unityPackage. Começaremos pela parte mais simples, criar 2 limitadores para que a esfera continue dentro de uma certa área. Criaremos um cubo nomeado UpperWall e alteraremos sua escala (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 1

Duplicaremos o primeiro e renomearemos para LowerWall. Posicionado-o em X:0 Y:-35 Z:0.

FOTO 2

Page 4: Tutorial Desenvolvendo Pong no Unity 3D - Victory Island Studios

4

Agora criaremos a esfera nomeada Ball. Está será posicionada em X:0 Y:0 Z:0 com uma escala de X:5 Y:5 Z:5. Aplicaremos então o componente RigidBody, para que possamos 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 3

Para obter uma melhor visualização in-game, iremos alterar a posição da camêra principal (Main Camera) para X:0 Y:0 Z:-70

FOTO 4

Page 5: Tutorial Desenvolvendo Pong no Unity 3D - Victory Island Studios

5

Agora, para iluminar o cenário, criaremos um foco de luz (Point Light) e posicionaremos na frente da câmera X:0 Y:0 Z:-20 . Definindo seu alcance (RANGE) como 100.

FOTO 5

Parte 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 e Z).

FOTO 6

Page 6: Tutorial Desenvolvendo Pong no Unity 3D - Victory Island Studios

6

Duplicaremos este item, renomeando-o para LeftPaddle e posicionando-o para X:45 Y:0 Z:0.

FOTO 7

Aplicaremos agora as texturas, começando pela esfera. Criaremos um material novo com a textura “basket”. Agora arrastamos este material até o objeto “Ball” e pronto, o objeto está texturizado.

FOTO 8

Page 7: Tutorial Desenvolvendo Pong no Unity 3D - Victory Island Studios

7

O mesmo será feito para os paddles, porém com a textura tijolo.

FOTO 9

Já as paredes, iremos aplicar uma cor sólida com o R:73 G:255 B:10 A:255.

FOTO 10

Page 8: Tutorial Desenvolvendo Pong no Unity 3D - Victory Island Studios

8

FOTO 11

Pronto, agora a cena está completa. Precisamos definir alguns limitadores que impeç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 outras barreiras que criaremos.

Criaremos mais um objeto vazio, porém, nomeado BackBarrier e definirmos sua escala 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 a opção “Is Trigger”.

Page 9: Tutorial Desenvolvendo Pong no Unity 3D - Victory Island Studios

9

FOTO 12

Criaremos mais cinco deste objeto e alteraremos seus nomes/escala/posição para:

Pronto, agora o cenário está finalizado e com todos os objetos que vamos necessitar.

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:0

Page 10: Tutorial Desenvolvendo Pong no Unity 3D - Victory Island Studios

10

2 - Programação dos Objetos

Agora que o cenário está criado e configurado, vamos aplicar a programação necessária para que o jogo rode conforme desejamos. Criaremos scripts em C# para aplicarmos 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;

Page 11: Tutorial Desenvolvendo Pong no Unity 3D - Victory Island Studios

11

//Aplica a velocidade inicial para a esquerda, aplicando uma inclinação

aleató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 (RightPaddle e 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;

}

}

Page 12: Tutorial Desenvolvendo Pong no Unity 3D - Victory Island Studios

12

Agora que a programação está feita, necessitamos definir o recebimento de controles para o jogo.

Para isto, vamos acessar o menu EDIT -> PROJECT SETTINGS -> INPUT , onde iremos deletar todas os sub-grupos, deixando apenas os dois nomeados “VERTICAL”.

FOTO 13

Renomearemos um para “Controle1” e outro para “Controle2” e definiremos para cada um os itens “Positive Button” e “Negative Button”, respectivamente, para que a barreira móvel possa subir e descer.

Observar que nos objetos RightPaddle e LeftPaddle o script já estará atuando, porém será necessário alterar a velocidade (o valor 1) e o Axis Name (nome do eixo) para o eixo 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 saiam voando ao serem acertados pela bola. Utilizar o valor 10000.

Page 13: Tutorial Desenvolvendo Pong no Unity 3D - Victory Island Studios

13

3 - Desenvolvendo o Menu Principal

Pronto, o jogo em si está parcialmente completo. Vamos criar uma nova cena e programar o menu principal.

A criação é bem simples, primeiro criamos uma base. Está será um cubo com as dimensõ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 14

Agora vamos para os itens do menu. Primeiro vamos buscar uma fonte na pasta de fontes 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 suas configurações devemos alterar o tamanho da fonte (FONT SIZE) para 40. Então criaremos um novo objeto “3D Text” nomeado PONG, aplicaremos a fonte escolhida e posicionaremos este objeto em X:-10 Y:32 Z:-10 .

Page 14: Tutorial Desenvolvendo Pong no Unity 3D - Victory Island Studios

14

Triplicaremos o título para gerar os botões :

Nome

Posição

Escala

START GAME

X:-1 Y:10 Z:-10

1

CREDITS

X:-1 Y:6 Z:-10

1

QUIT GAME

X:-1 Y:2 Z:-10

1

FOTO 16

Page 15: Tutorial Desenvolvendo Pong no Unity 3D - Victory Island Studios

15

Para 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");

}

}

}

Page 16: Tutorial Desenvolvendo Pong no Unity 3D - Victory Island Studios

16

Agora vamos acoplar o script aos botões e marcar a opção “IsQuit” no botão QUIT GAME.

FOTO 17

Por ultimo, devemos adicionar o Componente Box Collider nos nossos botões, para que eles sejam capazes de entender quando o cursor do mouse passará sobre eles.

Page 17: Tutorial Desenvolvendo Pong no Unity 3D - Victory Island Studios

17

4 - Build & Play

Agora, tudo pronto, vamos nos divertir! Vamos no menu FILE -> BUILD SETTINGS, adicionando as duas cenas criadas (MainMenu e Game, nesta exata sequência), com o botão “Add Current” .

Abra novamente a Cena do jogo e faça o mesmo que descrito acima, para adicionar também a cena de jogo. Observe que o MainMenu é a cena de numero 0, enquanto o Game é 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 18

Agorá é só jogar!