Criando um Jogo de Ping Pong no Unity tipo 2D



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

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

Tutorial - DVD Flick

Tutorial do Jogo tipo PONG 2D no Unity 5

1 UNIT Universidade do Trabalhador Dr. Abel dos Santos Nunes

ALBUM DE FOTOGRAFIAS NO POWER POINT


TUTORIAL COMO CRIAR E EDITAR UM VÍDEO NO WINDOWS MOVIE MAKER*

PASSO A PASSO MOVIE MAKER

NÚCLEO DE TECNOLOGIA E EDUCAÇÃO CURSO: WINDOWS MOVIE MAKER TUTORIAL

Superintendência Regional de Ensino de Ubá - MG Núcleo de Tecnologia Educacional NTE/Ubá. LibreOffice Impress Editor de Apresentação

O Primeiro Programa em Visual Studio.net

Desenvolvimento de jogos com Unity

Iniciação à Informática

Google Drive. Passos. Configurando o Google Drive

C D. C) Coleções: é usada para organizar o conteúdo de áudio, vídeo e imagens em pastas, buscando facilitar a montagem do storyboard.

MATERIAL DE APRESENTAÇÃO DO SCRATCH

Windows Live Movie Maker

Aula Au 3 la 7 Windows-Internet

SPARK - CONFIGURAÇÃO

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

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

Área de Trabalho. Encontramos: Ìcones Botão Iniciar Barra de Tarefas

MANUAL DE FTP. Instalando, Configurando e Utilizando FTP

Lync Acessando o Lync Web App

3. No painel da direita, dê um clique com o botão direito do mouse em qualquer espaço livre (área em branco).

Professor: Venicio Paulo Mourão Saldanha Site:

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO

Sistema de Recursos Humanos

Informática básica Telecentro/Infocentro Acessa-SP

ÍNDICE... 2 INTRODUÇÃO... 4

Mini Curso Básico De Introdução Ao Metasys. Apostila 1

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

O Windows 7 é um sistema operacional desenvolvido pela Microsoft.

Tutorial MSN Messenger

Conhecendo seu telefone

Como funciona? SUMÁRIO

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - SLIM

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA

NetBeans. Conhecendo um pouco da IDE

O Windows também é um programa de computador, mas ele faz parte de um grupo de programas especiais: os Sistemas Operacionais.

TUTORIAL DO ACCESS PASSO A PASSO. I. Criar um Novo Banco de Dados. Passos: 1. Abrir o Access 2. Clicar em Criar um novo arquivo

Capítulo 7 O Gerenciador de Arquivos

CONHECENDO A ÁREA DE TRABALHO DO WINDOWS 7

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - MILLENNIUM

Aula 3. Word Administrativo. Solicitamos que guarde seus arquivos, para o projeto final do módulo

Tutorial de Blender, Animação básica do tipo keyframe

Como criar pastas personalizadas e novas peças no Toolbox

Janelas e seus elementos

Como incluir artigos:

USANDO O ROUNDCUBE WEBMAIL

CRIANDO TEMPLATES E LEGENDAS

Produção de tutoriais. Suellem Oliveira

COMO JOGAR TRANCA ONLINE

Marcelo Henrique dos Santos

Dicas para usar melhor o Word 2007

Galeria de Fotos MorfeoShow

Seu primeiro jogo no Game Maker - tradução livre do tutorial do Game Maker. Traduzido por: Fernanda Monteiro Eliott.

UNIVERSIDADE FEDERAL DO AMAPÁ PRÓ REITORIA DE ADMINISTRAÇÃO E PLANEJAMENTO DEPARTAMENTO DE INFORMÁTICA. Manual do Moodle- Sala virtual

SIMULADO Windows 7 Parte V

Apostilas OBJETIVA Atendente Comercial / Carteiro / Op. Triagem e Transbordo CORREIOS - Concurso Público º CADERNO. Índice

Word 1 - Introdução Principais recursos do word A janela de documento Tela principal

VideoPad Video Editor

Introdução ao OneDrive

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

Gerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com

COMO JOGAR BURACO STBL NO JOGATINA

SUMÁRIO TUTORIAL DO HQ. 2 DICAS PEDAGÓGICAS:. 2 DOWNLOAD DA INSTALAÇÃO. 2 PASSO 1 FORMULÁRIO PARA DOWNLOAD. 2 PASSO 2 ESCOLHENDO A VERSÃO.

Irá abrir a página de login. Digite ali seu Nome de usuário e senha. Idioma, deixe padrão. Aperte enter ou click sobre o botão Acessar.

MANUAL GDS TOUCH. Versão: 1.0 Direitos reservados.

Apostila de Windows Movie Maker

Bom se você gravou tudo certinho vai aparecer essa tela no seu play2. Essa é a tela principal do scummvm, nela temos ao botões:

MANUAL DE UTILIZAÇÃO DO WEBMAIL SBC

Tutorial ConvertXtoDVD 3

PROCEDIMENTO PARA INSTALAR REDE ETHERNET EM CNC s FAGOR.

Tutorial WEB CONTENT MANAGEMENT [WCM] Obtenha benefícios a partir das aplicações customizadas da ADMT.

Manual do Software Pctel Supervisor Desktop

DRIVER DA TELA SENSÍVEL AO TOQUE MANUAL DE OPERAÇÃO

Prática de Windows. Prof. Marcelo Walter UFPE

Lição 1 - Criação de campos calculados em consultas

Professor Paulo Lorini Najar

Treinamento IDCad 2015

INTRODUÇÃO AO WINDOWS

16 - SCARTA. 1. Abrir o SCARTA clicando no ícone que se encontra na área de trabalho (Fig.1). Fig.1- Ícone do SCARTA

DELPHI 7 LINGUAGEM DE PROGRAMAÇÃO AMBIENTE CLIENTE SERVIDOR

Apostila para o 7º ano Profª Yandra

Guia de Início Rápido

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Bem-vindo ao CorelDRAW, um programa abrangente de desenho e design gráfico baseado em vetor para o profissional gráfico.

COMO JOGAR BURACO FECHADO NO JOGATINA

COMO INSTALAR O CATÁLOGO

Inicialização Rápida do Novell Messenger Móvel

Aula Au 3 la 3 Windows-Internet

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

STK (Start Kit DARUMA) Driver Genérico Somente Texto para a impressora DR700 ETHERNET

ROTEIRO DE INSTALAÇÃO

W o r d p r e s s 1- TELA DE LOGIN

Apostila de CmapTools 3.4

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

PROJETO INFORMÁTICA NA ESCOLA

Transcrição:

Criando um Jogo de Ping Pong no Unity tipo 2D Criação do Jogo Crie um novo projeto do tipo 2D com nome PingPong2D. File New Project. Escolha o diretório e nome para salvar e como do tipo 2D. Veja abaixo: Criação das Pastas Criaremos as seguintes pastas: Audio Cenas Materiais Scripts Sprites Clique abaixo sobre a pasta 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 à esquerda clique no canto inferior direito do quadrado Colors para ter a cor preta acima. Veja que a cor já aparece na cena e poderá fechar a pequena janela: Veja que o RGB ficou 000, que é preto. Criação das Quatro Paredes Parede da esquerda GameObject Create Other Cube Renomear para ParedeEsq Com ele selecionado ajuste os valores do Inspector: Position: X= -8, 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 8 O restante mantenha Parede superior Selecione na Hierarquia o objeto ParedeDir 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, Y para 4.7 Scale X=16, 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 Y para -4.7 O restante mantenha Observação Caso estas medidas não se ajustem ao seu monitor, faça ajustes a vontade. Adicionando a Luz GameObject Create Other Directional Light Apenas mova um pouco para cima e esquerda para tirar do centro. Adicionando as Raquetes Adicionando a Raquete maquina GameObject Create Other Cube Selecione o cubo, tecle F2 e renomeie para RaqueteMaquina Ainda com RaqueteMaquina selecionado altere no Inspector: Position: X= -7.6, Y= 0 e Z=0 Scale: X= 0.25, Y=2.5 e Z=1 Adicionando a Raquete humano Selecione RaqueteMaquina na hierarquia Tecle Ctrl+D e F2 para renomear para RaqueteHumano Com RaqueteHumano selecionado altere no Inspector apenas X para 7.6 Adicionando a Bola GameObject Create Other 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

Adicionando Box Collider 2D Selecione as 4 paredes e as 2 raquetes Clique em Inspector Add Component Physics 2D Box Collider 2D Então clique em Add Component Physics 2D Remover o Componente Sphere Collider Selecione a bola Remova o componente Sphere Collider Executando Ao executar (clicar no botão Play acima) não acontecerá nenhum movimento. Adicionando Circle Collider 2D e o Rigidbody 2D Selecione a bola Clique em Inspector Add Component Physics 2D Circle Collider 2D Então clique em Add Component Physics 2D Adicione também o componente Rigidbody 2D Executando Clique no botão Play para testar o jogo novamente. Veja que a bola cai (por conta da gravidade do rigidbody) e colidirá com a parede inferior (devido ao box collider) e para, fica quieta. 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 Focará assim: Execute novamente Agora a bola cai e rebate no fundo e fica indeterminadamente assim, descendo e subindo.

A tela do jogo, nesta fase, ficará assim: Vida ao Jogo Agora Vamos dar mais Vida e interatividade ao Jogo. Isso consegue-se especialmente com scripts. 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 Monodevelop 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. Todo script que tem variável tipo public mostrará esta variável no Inspector, no Unity.

Criando o script para a raquetehumscript Crie um novo script chamado raquetehumscript tipo C#, contendo using UnityEngine; using System.Collections; public class RaqueteHumScript : MonoBehaviour { public KeyCode teclacima = KeyCode.UpArrow; public KeyCode teclabaixo = KeyCode.DownArrow; void FixedUpdate() { Vector3 posicao = transform.position; if (Input.GetKey(teclaCima) && posicao.y < 3.4f) { transform.position = new Vector3(posicao.x, posicao.y + 0.2f, posicao.z); else if (Input.GetKey(teclaBaixo) && posicao.y > -3.4f) { transform.position = new Vector3(posicao.x, posicao.y - 0.2f, posicao.z); Anexando este script para o objeto RaqueteHumano Volte para o Unity Anexe este script para o objeto RaqueteHumano, de forma semelhante a feita anteriormente. Como tem duas variáveis public para as teclas podemos alterar pelo Inspector. Executando Novamente Agora a bola ficará rebatendo automaticamente nas paredes esquerda e direita, como também nas superior e inferior e você poderá mover a raquete da direita com as setas para cima e para baixo. Observe a força da bola e se achar melhor aumente ou reduza. Selecione a bola na Hierarquia e altere o valor da propriedade Velocidade do script Bola Script. Novos Recursos 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 Tutorial de Ping Pong 2D e Position X = -5 e Y = 5 Font Size = 12 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. Estou usando o tamanho default de fonte mas fique à vontade para alterar em Font Size. 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.04, 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 Obs.: também poderia duplicar PontosMaquina 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 { void Update() { // Teclando ESC saira do Jogo, mas somente no executavel e nao dentro do editor 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 à Main Camera da cena menu Selecione a cena menu abaixo nos Assets e efetue um duplo clique nela 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 criaríamos um objeto exclusivamente para ele e soltaríamos 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 da cena fase1. GameObject Create Empty e renomeie para Pontuacao Arraste o objeto Pontuacao e solte sobre a Main Camera Anexar este Script PontosScript ao objeto Pontuacao Na cena Fase1 Expanda a Main Camera para ver Pontuacao Arraste este script PontosScript e solte sobre o objeto Pontuacao

Atribuindo Valor para as Variáveis tipo public do Script em Pontuacao Expanda Pontos na Hierarquia Selecione Pontuacao para que veja as variáveis public no Inspector Arraste da esquerda e solte sobre a respectiva caixa na direita, como indicado abaixo. 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. 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 com agrupamentos:

Adicionar Sprite no Centro Abra a pasta Sprites Baixe este arquivo e renomeie para Centro.png http://noobtuts.com/content/unity/2d-pong-game/middle.png Importe o script Centro.png para a pasta Sprites 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 script PontosScript public float velocidade = 15.0f; void Start() { // Sempre que o jogo comecar a bolinha sera impulsionada para a direita e com a forca 15 rigidbody2d.velocity = Vector2.right * velocidade; //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 RaqueteMaqScript 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 RaqueteMaqScript : MonoBehaviour { private float velocidade = 5.0f; private float altura = 3.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 feita anteriormente Atribuir o audio Pong ao campo BolaColisao Selecionar o objeto RaqueteMaquina na Hierarquia Arraste o audio Pong e solte sobre o campo Bola Colisao no Inspector Editar o script RaqueteHumScript E deixar assim: using UnityEngine; using System.Collections; public class RaqueteHumScript : 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 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, posicao.z); // 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, posicao.z); // 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 no Inspector Execute novamente Agora verá o jogo completo, mova as setas para cima e para baixo para rebater a bola que será enviada de volta pelo computador. 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 PingPong e aguarde. Quando ele terminar de gerar o EXE mostrará no Windows Explorer e já poderá executar.

Referências: http://unity3d.com http://www.supercoderbrothers.com/unity-tutorial-our-first-game-pong-part-1/ http://www.supercoderbrothers.com/unity-tutorial-pong-part-2-adding-interaction/ https://www.youtube.com/watch?v=tnkcrboig6y https://www.youtube.com/watch?v=dylzbb_y0ya https://www.youtube.com/watch?v=tb738ke4xqc http://noobtuts.com/unity/2d-pong-game http://unityer.16mb.com Mudando o Jogo para Dois Jogadores Para ter um jogo para dois jogadores o que precisamos mudar? Remover o MaqHumScript ou apenas remover o componente do script no objeto raquetemaruina. Depois disso anexar o scripthumscript ao objeto raquetemaquina e mudas as teclas de movimento para usar W e S ou outra do seu gosto.