Tutorial do Jogo tipo PONG 2D no Unity 5

Documentos relacionados
Criando um Jogo de Ping Pong no Unity tipo 2D

Criação de um Jogo Simples de Asteroides 2D no Unity

LABORATÓRIO: CRIANDO O JOGO MEGAMAN 2D

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MATO GROSSO CAMPUS AVANÇADO TANGARÁ DA SERRA

Apresentação. Criando o projeto

PROGRAMACAO E INTEGRACAO DE JOGOS I

GUI - Menu de Jogo. Ferramenta de Desenvolvimento - Engine I

Dicas Básicas sobre Blender

LABORATÓRIO: CRIANDO O JOGO MEGAMAN 2D

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MATO GROSSO CAMPUS AVANÇADO TANGARÁ DA SERRA

Material reorganizado e adaptado por: Suéllen Rodolfo Martinelli. Disponibilizado em:

Introdução à Ferramenta Construct 2

Jogos baseados em plataforma (parte 1)

MICROSOFT WINDOWS XP

Como criar um menu pop-up no Dreamweaver

Executar uma macro clicando em um botão da Barra de Ferramentas de Acesso Rápido

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MATO GROSSO CAMPUS AVANÇADO TANGARÁ DA SERRA

Copyright In9 Mídia Soluções Digitais Inc. All rights reserved.

Ficha de trabalho nº6 Outubro de 2009

Laboratório Configuração do Backup e da Restauração de Dados no Windows 7 e no Vista

HANDS-ON PROGRAMAÇÃO DE JOGOS PARA CRIANÇAS

Capturando Bolinhas. Introdução. Scratch

Dados dinâmicos em um relatório de Tabela Dinâmica ou de Gráfico

Os arquivos podem conter qualquer tipo de informação: Texto Sons (Músicas) Imagens (Fotos, etc.) Vídeos E podem ser Programas de Computador

Programando com Scripts. Prof. Fellipe Aleixo

ANEXO V TUTORIAL: SOFTWARE EDUCACIONAL VAMOS ESCREVER!: PROJETOS DE ESCRITA INTERATIVA

Blender: Modelagem 3D

MSP430 Lab 02 Criar e Compilar um projeto

Desenvolvendo aplicações com Unity3D. Renan Vinicius Aranha

Cap. 2: Executando o Cálculo de Volumes

Primeiros passos das Planilhas de Obra v2.5 Instalação, configuração e primeiros passos para uso das planilhas de obra

Aula 01 Microsoft Excel 2016

Roteiro de apoio Aula 1 - Introdução ao ArcGIS

Programando na Unity 3D Engine (Parte 01)

Curso de extensão em Blender Prof. Luiz Gonzaga Damasceno

Instalação Silhouette Studio

1. Crie um novo projeto Scratch. Apague o gato clicando com o botão direito e em apagar.

MANUAL DE UTILIZAÇÃO DO SOFTWARE DE IMPRESSÃO DE ETIQUETAS MOORE.

Tile palette Com os sprites devidamente importados podemos criar a nossa paleta. Acesse no menu WINDOW >> TILE PALETTE.

Aula 01 Excel Prof. Claudio Benossi

CURSO DE INFORMÁTICA BÁSICA AULA 3 NOÇÕES BÁSICAS DE MICROSOFT WORD

Ambientação. Prof. Fellipe Aleixo

PHILAE - SISTEMA DE RELACIONAMENTO - MANUAL DE INSTALAÇÃO

Manual de Utilização do software Colacril Office para criação e impressão de etiquetas. Manual de Utilização

UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL DEPARTAMENTO DE FÍSICA, ESTATÍSTICA E MATEMÁTICA

Tutorial Tableau: como elaborar gráficos interativos

JOGOS DISTRIBUÍDOS. Aula 8. TECNOLOGIA EM JOGOS DIGITAIS JOGOS DISTRIBUÍDOS 2016 Marcelo Henrique dos Santos -

JOGOS DISTRIBUÍDOS. Aula 10. TECNOLOGIA EM JOGOS DIGITAIS JOGOS DISTRIBUÍDOS 2016 Marcelo Henrique dos Santos -

Importando e editando vídeos

WINRAR COMPACTADOR E DESCOMPACTADOR DE ARQUIVOS

Universidade Federal do Rio de Janeiro Faculdade de Arquitetura e Urbanismo

Tutorial de desenvolvimento de mini jogo em Unity 3D Aprender os Básicos do Unity

Programas. Existem vários programas gratuitos pela internet afora.

Vamos dar prosseguimento a nossas edições! Estamos, agora, com uma animação básica de neve. Vamos torná-la uma verdadeira nevasca!

Vejamos agora as ferramentas mais utilizadas para criação de imagens:

ALGORITMOS. Professor: Diego Oliveira. Aula 06 - Tipos Primitivos de Dados

WINDOWS. Professor: Leandro Crescencio Colégio Politécnico 1

Criar e formatar relatórios

Guia do Instrutor Jogo da Bruxa

Tutorial rápido CMAP TOOLS

Manual de Instalação do Módulo de Segurança MMA SISGEN

Usando o Eclipse - Fundamentos. Professor Vicente Paulo de Camargo

Uma pasta é pouco mais que um contêiner no qual é possível armazenar arquivos. Se

Instituto Federal do Rio Grande do Norte IFRN Caicó Curso de Informática Básica INFORMÁTICA BÁSICA CONCEITOS BÁSICOS

Criando uma animação simples em Flash CS5

IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias

EBRcart2 digital cart machine

Crie um novo projeto conforme abaixo, encerrando com o botão Finalizar :

Apostila de Windows Movie Maker

Manual Studio Uno 2.0

Jogo da Tabuada. Introdução. Scratch

Visual Studio+SQL Server Express LocalDB ANTONIO LUIS

Pré-requisitos. Para começar

Manual de Instrução: LG MG320c - Versão Windows LG MG320C

Flash. Prof. Luiz Claudio Ferreira de Souza.

TUTORIAL DE UTILIZAÇÃO DO OWL-S COMPOSER W. Trabalho de Conclusão de Curso Aluno: Adriano Novais Queiroz Orientadora: Prof.ª Daniela Barreiro Claro

Tutorial sobre o uso da ferramenta de autoria A Ferramenta de Autoria - Célula

BROFFICE.ORG IMPRESS

MICROSOFT WINDOWS 7 WINDOWS 7 WINDOWS 7

Lab - Backup e Recuperação no Windows XP

INFORMÁTICA APLICADA AULA 05 WINDOWS XP

UNITY 3D CONHECENDO, ADQUIRINDO, INSTALANDO E CONFIGURANDO

1. Introdução O que é Microsoft PowerPoint Recursos de PowerPoint. Introdução

Explorador do Windows (manipulação de ficheiros)

CURSO ONLINE DE PRODUÇÃO DE MÚSICA ELETRÔNICA APOSTILA 1 CRIAÇÃO DE RE-EDITS AUTOR: DJ RAFAEL CASTRO

Disciplina de Lógica e Linguagem de Programação Desenvolvido pelo professor Danilo Giacobo Ferramenta Code::Blocks

Lab - Utilitário de Linha de Comando no Windows Vista

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA TUTORIAL OPEN WATCOM: CRIANDO O PRIMEIRO PROGRAMA

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA TUTORIAL OPEN WATCOM: CRIANDO O PRIMEIRO PROGRAMA

Lab - Utilitário de Linha de Comando no Windows XP

Corel Draw X7. Modulo 1 Aula 1 Conhecendo o Corel Draw Desenhando com formas básicas

Iniciando no Gimp Material Desenvolvido por Henrique Barone

Ambiente de programação

Windows - Definição. Windows (pronuncia-se úindôus) é um sistema operacional.

Como instalar um gerador de PDF

Solid Edge ST6. Tutorial 1. Modelando um pino MODELAGEM SÍNCRONA E ORDENADA (SYNCHRONOUS AND ORDERED):

APOSTILA SCRATCH CONCEITOS BÁSICOS

Mini curso de Construct2 - PIBID. Diego Lopes Max Azevêdo Leando Almeida Sinval Vieira

CRIAÇÃO DE PROGRAMAS USANDO SHAPES

Transcrição:

Tutorial do Jogo tipo PONG 2D no Unity 5 Projeto do Jogo Algumas telas estão na versão 4 do Unity, adapte-as. Lembre que é importante que antes de iniciar um jogo anotar informações sobre o mesmo, detalhes, como será, que recursos usará, arquitetura e como será jogado. Assim este servirá de roteiro para a criação do jogo. Com o tempo aprenderá a dar importante a esta parte. Criaremos um jogo bem simples, tipo o Pong, com a intenção de simplificar a compreensão da forma de criação de jogos no Unity. O jogo pong foi criado em 1972 e detalhes podem ser vistos aqui: http://pt.wikipedia.org/wiki/pong Online http://ponggame.org Partes do nosso jogo Será formado por um retângulo fechado por 4 paredes, com duas raquetes e uma bola. Paredes paredeesq, parededir, paredesup e paredeinf Raquetes raquetemaquina e raquetehumano Bola bola Como será jogado Será um jogador contra o computador, o computador usará a raquete esquerda O humano usará a raquete da direita e usará as setas para cima e para baixo para movimentar a raquete. Funciona como duas traves de futebol (esquerda e direita). Quando a bola bater na parede da esquerda será ponto do humano Quando bater na parede da direita será ponto do computador Construção Usará somente recursos nativos do Unity (primitivas geométricas). Nada de sprites, modelos, etc. Pastas Material e Scripts Cena salvar a cena como fase1 Física as paredes, a bola e as raquetes terão o componente Box Collider removido e adicionado um Box Collider 2D em todos, exceto na bola, que será um Circle Collider 2D e Rigidbody2D Luz Directional Light Main Camera mudar o background para preto Scripts bolascript e raquetescript Material bouncematerial Instalação do Unity Download - http://unity3d.com/unity/download Instale como qualquer aplicativo for windows. Aqui usei a versão 5.3.2

Criação do Jogo Crie um novo projeto do tipo 2D com nome Pong2D. File New Project. Escolha o diretório e nome para salvar e como 2D: Obs.: A tela do 5.3.2 mudou, mas dá para entender. Criação das Pastas Criaremos as seguintes pastas: Audio Cenas Materiais Scripts Sprites Clique abaixo sobre Assets com o botão direito Create Folder Entre com o nome Audio para a pasta. Deixe a pasta Audio selecionada e tecle Ctrl+D e F2 e renomeie para Cenas. Crie as demais pastas da mesma forma. Salvando a Cena Atual Clique no painel da cena e tecle Ctrl+S então entre com o nome fase1 na pasta Cenas. Mudando a cor do Fundo Selecione a Main Camera No Inspector, no componente Camera clique na caixa Background

Na janela que abrir na esquerda clique em Colors abaixo e à direita para que o fundo fique preto: Criação das Quatro Paredes Parede da esquerda GameObject 3D Object Cube Renomear para paredeesq Com ele selecionado ajuste os valores do Inspector: Position: X= -7, Y= 0 e Z=0 Scale: X= 0.1, Y= 9.5 e Z=1 Parede da direita Selecione na Hierarquia o objeto paredeesq Tecle Ctrl+D para duplicar Selecione o objeto duplicado e tecle F2 renomeie para parededir Mantenha parededir selecionado Agora altere no Inspector apenas Position X para 6.8 O restante mantenha Parede superior Selecione na Hierarquia o objeto paredeesq Tecle Ctrl+D para duplicar Selecione o objeto duplicado e tecle F2 renomeie para paredesup Mantenha paredesup selecionado Agora altere no Inspector apenas Position X para -0.15, Y para 4.7 Scale X=18, Y=0.1 e Z=1

Parede inferior Selecione na Hierarquia o objeto paredesup Tecle Ctrl+D para duplicar Selecione o objeto duplicado e tecle F2 renomeie para paredeinf Mantenha paredeinf selecionado Agora altere no Inspector apenas Position X para 0, Y para -4.7 O restante mantenha Adicionando a Luz GameObject Light Directional Light Apenas mova um pouco para cima e esquerda para tirar do centro. Adicionando as Raquetes Raquete maquina GameObject 3D Object Cube Selecione o cubo, tecle F2 e renomeie para raquetemaquina Ainda com raquetemaquina selecionado altere no Inspector: Position: X= -8, Y= 0 e Z=0 Scale: X= 0.25, Y=2.5 e Z=1 Raquete humano Selecione raqueteesq na hierarquia Tecle Ctrl+D e F2 para renomear para raquetehumano Com raquetehumano selecionado altere no Inspector apenas X para 8 Adicionando a Bola GameObject 3D Object Sphere Selecione o cubo, tecle F2 e renomeie para bola Ainda com bola selecionado altere no Inspector somente: Scale: X= 0.5, Y=0.5 e Z=1 Removendo o Componente Box Collider Selecione as 4 paredes e as duas raquetes (segure a tecla Shift para selecionar todos) No Inspector à direita de Box Collider, clique na pequena roldana acima e à direita e então em Remove Component Aqui Selecione a bola e remova o componente Sphere Collider.

Remover o Componente Sphere Collider Selecione a bola Remova o componente Sphere Collider Adicionando Box Collider 2D Selecione as 4 paredes e as 2 raquetes Clique em Inspector Add Component Physics 2D Box Collider 2D Adicionando Circle Collider 2D Selecione a bola Clique em Inspector Add Component Physics 2D Circle Collider 2D Adicione também o componente Rigidbody 2D Executando Clique no botão Play para testar o jogo. Veja que a bola cai (por conta do rigidbody) e colide com a parede inferior (box collider) e para. Clique novamente no botão Play para voltar para a cena. Adicionar Physics2D Material Para fazer a bolinha rebater nas paredes. Clique sobre a pasta Materiais com o botão direito Create - Physics2D Material Renomeie para bouncematerial Configurando o material criado Seleciona bouncematerial No Inspector mude Friction para 0 e Bounciness para 1. Adicionando Material para a Bola Mantenha a pasta Materiais aberta Selecione a bola na hierarquia No Inspector Arraste o bouncematerial para a caixa Material no componente Circle Collider 2D, que atualmente contém None Focará assim: Execute novamente Agora a bola cai e rebate no fundo, volta e fica indeterminadamente assim.

A tela do jogo ficará assim: Agora Vamos dar mais Vida ao Jogo. Criar um script para a bola Clique na pasta Script com o botão direito Create C# Script Renomeie teclando F2 para bolascript Com o script bola selecionado tecle Enter para abrir o Editor VisualStudio CSharp Entre este conteúdo no script (remova o conteúdo existente: using UnityEngine; using System.Collections; public class bolascript : MonoBehaviour { // Permite que a velocidade seja alterada pelo Inspector no Unity, por ser public public float velocidade = 15.0f; void Start() { rigidbody2d.velocity = Vector2.right * velocidade; Anexando o script para o objeto bola Volte ao Unity Selecione o Objeto bola na Hierarquia No Inspector, abaixo clique em Add Component e selecione o script bolascript. Outra forma é arrastar o bolascript e soltar sobre o objeto bola na Hierarquia.

Adicionando o script para a raquetehumano Crie um novo script chamano raquetehumano tipo C#, contendo using UnityEngine; using System.Collections; public class raquetehumanoscript : MonoBehaviour { public KeyCode teclacima = KeyCode.UpArrow; public KeyCode teclabaixo = KeyCode.DownArrow; void FixedUpdate() { Vector3 posicao = transform.position; posicao.z); posicao.z); if (Input.GetKey(teclaCima) && posicao.y < 3.4f) { transform.position = new Vector3(posicao.x, posicao.y + 0.2f, else if (Input.GetKey(teclaBaixo) && posicao.y > -3.4f) { transform.position = new Vector3(posicao.x, posicao.y - 0.2f, Anexando este script para o objeto raquetehumano Volte para o Unity Anexe este script para o objeto raquetehumano, de forma semelhante a feita anteriormente. Executando Novamente Agora a bola ficará rebatendo automaticamente nas paredes esquerda e direita, como também na superior e inferior e você poderá mover a raquete da direita com as setas para cima e para baixo. Nesta parte do tutorial iremos adicionar ao nosso jogo os recursos: -Adicionar nova cena Menu -Pontos -Recorde -Jogar contra o computador (apenas um jogador) -Som na batida da raquete com a bola -Menu inicial para Iniciar e Sair do jogo -Agrupar objetos dentro de GameObject Emptys para melhor organização da Hierarquia -Pequena mudança nos nomes de objetos e scripts para maior coerência -Entre outras

Adicionar a Cena Menu Clique em File New Scene (caso perguntado se deseja salvar as alterações, escolha Sim) Tecle Ctrl+S e acesse a pasta Cenas e dê o nome menu para a nova cena Completando a cena GameObject CreateOther 3D Text e renomeie para Pong Mude a propriedade Text no Inspector para Pong Tutorial 2D e Position X = -5 e Y = 5 GameObject CreateOther GUI Text e renomeie para Menu Text Menu Font Size 28 Position X = 0.46 e Y 0.8 Adicionando as Cenas ao Build Settings... Abra a pasta Cenas File Build Settings... Clique no nome da cena menu e arraste para o Build Settings e solte na região Scenes In Build Agora clique na cena fase1 e faça o mesmo, de forma que fique assim: Feche a janela do Build Settings.

Contando e Mostrando os Pontos dos Jogadores Vamos usar os objetos do tipo Gui Text para mostrar os pontos na tela. Observe que chamei de raquetemaquina o jogador que usa a raquete esquerda, que é controlada pelo computador, enquanto que a raquete da direita chamei de raquerehumano. Criando pontosmaquina Abra a cena fase1 com duplo clique em Cenas/fase1 GameObject CreateOther GUI Text e renomear para pontosmaquina Altere as propriedades do Inspector: Text - Maquina: 0 Position X = 0.03, Y = 0.96 e Z = 0 Criando pontoshumano GameObject CreateOther GUI Text e renomear para pontoshumano Altere as propriedades do Inspector: Text - Humano: 0 Position X = 0.8, Y = 0.96 e Z = 0 Criando recorde GameObject CreateOther GUI Text e renomear para recorde Altere as propriedades do Inspector: Text - Recorde: 0 Position X = 0.45, Y = 0.96 e Z = 0 Criar o menuscript Crie um novo script chamado menuscript do tipo C#, contendo: using UnityEngine; using System.Collections; public class menuscript : MonoBehaviour { editor void Update() { // Teclando ESC saira do Jogo, mas somente no executavel e nao dentro do if (Input.GetKey ("escape")) { Application.Quit(); void OnGUI(){ const int botaolargura = 120; const int botaoaltura = 30; // Definindo as informacoes para os botoes e no centro da tela Rect buttoniniciar = new Rect(Screen.width/2-50, Screen.height/2 + 10,botaoLargura, botaoaltura); Rect buttonsair = new Rect(Screen.width/2-50, Screen.height/2 + 50,botaoLargura, botaoaltura); // Desenha na tela o botao Iniciar

if(gui.button(buttoniniciar,"iniciar")){ // Ao clicar carregar a primeira fase, fase1 Application.LoadLevel("fase1"); // Desenha na tela o botao Sair if(gui.button(buttonsair,"sair")){// Sair e o rotulo do botao // Quando clicado ele sai do jogo. Lembre que estando dentro do Unity nao saira, apenas no EXE Application.Quit(); Observe que ele está bem comentado, especialmente quando pode haver dúvida. Anexar Este Script ao objeto menu da cena menu Selecione a cena menu abaixo nos Assets e e fetue um duplo clique nela Selecione a Main Camera na Hierarquia Arraste o script menuscript e solte sobre a Main Camera da cena menu Como é um jogo simples deixaremos na Main Camera. Para um jogo maior criariamos um objeto exclisivamente para ele e soltariamos na Main Camera, pois esta está disponível todo o tempo Criando pontosscript Criar novo script chamado pontosscript, do tipo C# e contendo: using UnityEngine; using System.Collections; // Este script foi anexado a um objeto GameObject Empty arrastado para dentro da Main Camera // Este script precisa ficar anexado a um objeto que esteja o tempo todo valendo, como a main camera ou o background public class pontosscript : MonoBehaviour { // Da hierarquia arrastar pontosmaquina para a variavel publica PontosGuiMaq de Pontuacao em Main Camera public GUIText pontosguimaq; // Da hierarquia arrastar pontoshumano para a variavel publica PontosGuiHum de Pontuacao em Main Camera public GUIText pontosguihum; // Da hierarquia arrastar recorde para a variavel publica recordegui de Pontuacao em Main Camera public GUIText recordegui; public int pontoshum = 0;// Dar acesso ao script nave, por isso public public int pontosmaq = 0;// Dar acesso ao script nave, por isso public void Update () { // Se os pontos do humano da partida atual for maior que o recorde armazenado em PlayerPrefs

if(pontoshum > PlayerPrefs.GetInt("Recorde")){ // Guarde em PlayerPrefs os pontoshum PlayerPrefs.SetInt("Recorde", pontoshum); // Se os pontos da maquina da partida atual for maior que o recorde armazenado em PlayerPrefs else if(pontosmaq > PlayerPrefs.GetInt("Recorde")){ // Guarde em PlayerPrefs os pontosmaq PlayerPrefs.SetInt("Recorde", pontosmaq); //pontosgui.fontstyle = FontStyle.Bold; //pontosgui.fontsize = 18; if(pontosmaq < 20){ // Mostrar na ela Maquina mais pontosmaq pontosguimaq.text = "Maquina " + pontosmaq; else{ // Caso seja 20 mostre na tela Maquina Venceu: mais pontosmaq; pontosguimaq.text = "Maquina Venceu: " + pontosmaq; if(pontoshum < 20){ pontosguihum.text = "Humano " + pontoshum; else{ pontosguihum.text = "Humano Venceu: " + pontoshum; Application.Quit(); if (pontoshum > pontosmaq) { recordegui.text = "Recorde Humano: " + PlayerPrefs.GetInt ("Recorde"); else{ recordegui.text = "Recorde Maquina: " + PlayerPrefs.GetInt("Recorde"); Application.Quit(); // Para o caso de querer zerar manualmente o recorde if(input.getkeydown(keycode.r)) PlayerPrefs.SetInt("Recorde", 0); Também está comentado para melhor compreensão, por quem ainda não está familiarizado com o C# e Unity. Criar objeto Pontuacao Criar objeto que será anexado ao pontosscript e que ficará sob a Main Camera. GameObject Create Empty e renomeie para pontuacao Anexar este Script Volte para a cena fase1 Expanda a Main Camera para ver pontuacao Arraste este script pontosscript e solte sobre o objeto pontuacao

Atribuindo Valor para as Propriedades do Script em Pontuacao Expanda Pontos na Hierarquia Selecione Pontuacao para que veja as variáveis públicas no Inspector Arraste da esquerda e solte sobre a respectiva caixa na direita Arraste pontosmaquina e solte na caixa de texto à direita Pontos Gui Maq Faça o mesmo com pontoshumano e com recorde, para que fique assim: Criar Agrupamentos para Objetos Para melhor organizar a hierarquia, vamos criar GameObjects Empty e mover alguns objetos para eles. Veja como está a Hierarquia agora: Vamos criar os objetos e agrupara para melhorar a organização: GameObject Create Empty e renomear para Paredes Selecione os 4 objetos paredes, basta clicar no primeiro, segurar o Shift e clicar no último, ou arrastar de um em um Arraste os 4 objetos parede e solte sobre o novo objeto Paredes

Agora crie um para as raquetes GameObject Create Empty e renomear para Raquetes Arraste as raquetes e solte no objeto Raquetes Agora crie mais um GameObject Empty chamado Pontos Arraste os objetos pontosmaquina, pontoshumano e recorde para Pontos Veja como ficou agora: Adicionar Sprite no Centro Abra a pasta Sprites Importe o script centro.png para a pasta Sprites Baixe este arquivo e renomeie para centro.png http://noobtuts.com/content/unity/2d-pong-game/middle.png Aproveitando aqui segue mais um tutorial de Pong, sendo que esse usa sprites: http://noobtuts.com/unity/2d-pong-game Arraste o sprite centro e solte na hierarquia Position (0,0,0) e Scale (1, 2, 1) Edite o script bolascript e deixe assim: using UnityEngine; using System.Collections; public class bolascript : MonoBehaviour { private pontosscript ptscript; // Para se comunicar com o pontosscript void Start() { // Sempre que o jogo comecar a bolinha sera impulsionada para a direita e com a forca 15 rigidbody2d.velocity = Vector2.right*15.0f; //Procure o script pontosscript anexado ao objeto Pontuacao ptscript = GameObject.Find ("pontuacao").getcomponent<pontosscript> (); // Quando ouver colisao void OnCollisionEnter2D (Collision2D outro){ // Da bola com a paredeesq if(outro.gameobject.name == "paredeesq"){ // Some um ponto para o humano

ptscript.pontoshum ++; // Colisao da bola com a parededir else if(outro.gameobject.name == "parededir"){ // Ponto para a maquina ptscript.pontosmaq ++; void OnGUI() { // Sempre que maquina ou humano facam 20 pontos if (ptscript.pontosmaq == 20 ptscript.pontoshum == 20) { // Pare a bola rigidbody2d.velocity = Vector2.right * 0.0f; rigidbody2d.gravityscale = 0.0f; // Crie um botao com rotulo Menu if (GUI.Button(new Rect(220, 50, 50, 30), "Menu")) // Quando clicado abra o menu Application.LoadLevel("menu"); Adicionar um arquivo de Áudio Criar um arquivo de áudio para a colisão da bola com as raquetes. Usaremos a ferramenta online abaixo para criar o arquivo: http://www.superflashbros.net/as3sfxr/ Clique em PICKUP/COIN e em EXPORT.WAV Salve com o nome pong.wav Abra a pasta Audio e clique com o botão direito Inport New Asset e importe o pong.wav O Unity também pode usar áudio pela interface mas usaremos o arquivo via script.. Crie o script raquetemaquinascript e adicione o conteúdo: using UnityEngine; using System.Collections; // Uma dica: para receber help sobre qualquer comando, apenas clique sobre o nome do comando e tecle Ctrl+' public class raquetemaquinascript : MonoBehaviour { private float velocidade = 5.0f; private float altura = 2.5f; private pontosscript ptscript; // Para se comunicar com o script pontosscript public AudioClip bolacolisao; // Arrastar o audio laser para esta variavel void Start(){ // Criando uma referencia para o script pontosscript ptscript = GameObject.Find ("pontuacao").getcomponent<pontosscript> ();

void Update(){ // Criando a variavel posicao do tipo Vector3 que armazena transform.position Vector3 posicao = transform.position; float posicaoy = Mathf.Sin(Time.time * velocidade) * altura; posicaoy += altura/2-1.3f; // Atribuindo a transform.position o Vector3 transform.position = new Vector3(posicao.x, posicaoy, posicao.z); // Se os pontos da maquina ou do humano somarem 20 if (ptscript.pontosmaq == 20 ptscript.pontoshum == 20) { //pare a raquete da maquina transform.position = new Vector3(posicao.x, posicao.y, posicao.z); // Em caso de colisao da raquetemaquina com a bola void OnCollisionEnter2D (Collision2D outro){ if(outro.gameobject.name == "bola"){ // Toque o som pong que foi anexado ao script atual AudioSource.PlayClipAtPoint(bolaColisao, transform.position); Anexar ao objeto raquetemaquina Da mesma forma Selecionar o objeto raquetemaquina na Hierarquia Atribuir o audio pong para o campo BolaColisao Editar o script raquetehumanoscript e deixar assim: using UnityEngine; using System.Collections; public class raquetehumanoscript : MonoBehaviour { // Criar variavel publica que recebera teclas public KeyCode teclacima = KeyCode.UpArrow; public KeyCode teclabaixo = KeyCode.DownArrow; // Criar variavel que recebera um arquivo de audio public AudioClip bolacolisao; // Arrastar o audio pong para esta variavel no Inspector ao selecionar raquetehumscript void FixedUpdate() { // Criando a variavel posicao do tipo Vector3 que armazena transform.position Vector3 posicao = transform.position; // Caso a teclacima seja pressionada e se o y de posicao for menor que 3.4

posicao.z); posicao.z); if (Input.GetKey(teclaCima) && posicao.y < 3.4f) { // Faca a raquete se mover para cima transform.position = new Vector3(posicao.x, posicao.y + 0.2f, // Caso a teclabaixo seja pressionada e se o y de posicao for maior que -3.4 else if(input.getkey(teclabaixo) && posicao.y > -3.4f){ // Faca a raquete se mover para baixo transform.position = new Vector3(posicao.x, posicao.y - 0.2f, // Quando houver colisao void OnCollisionEnter2D (Collision2D outro){ // Da raquetemunano com a bola if(outro.gameobject.name == "bola"){ // Tocar o som do arquivo pong AudioSource.PlayClipAtPoint(bolaColisao, transform.position); Variável BolaColisão Selecionar o objeto raquetehumano na Hierarquia Atribuir o audio pong para o campo BolaColisao Veja como ficará a tela final do nosso jogo

Aqui a tela do menu

Gerando o EXE do jogo File Build Settings Clique em Platform - PC, Mac & Linux Standalone À direita deixe selecionados Windows e X86. Clique abaixo em Build e entre o nome Pong2DFull e aguarde. Quando ele terminar de gerar o EXE mostrará no Windows Explorer e já poderá executar. Ribamar FS http://unityer.16mb.com