Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Mobile Development

Criar um jogo de plataforma 2D com Unity e a API de áudio Dolby

by
Read Time:19 minsLanguages:
Sponsored Content

This sponsored post features a product relevant to our readers while meeting our editorial guidelines for being objective and educational.

Portuguese (Português) translation by Thiago Moreira (you can also view the original English article)

Final product imageFinal product imageFinal product image
What You'll Be Creating

Introdução

Neste tutorial, você aprenderá como criar um jogo 2D para smartphone usando c# e Unity. Nós vamos tomar vantagem do Dolby Audio Plugin para a Unity e melhorar a experiência áudio do jogo. O objetivo do jogo é simples, chegar ao outro lado do nível enquanto evitamos os inimigos e coletamos moedas.

Neste tutorial, você aprenderá os seguintes aspectos do desenvolvimento de jogos com Unity:

  • criação de um projeto 2D em Unity
  • criação de Prefabs
  • botões de movimento e ação
  • trabalhando com colisões de física
  • usando um sprite sheet
  • integração da API de áudio Dolby

1. Crie um novo projeto Unity

Abra a unidade e selecione New Project no menu File para abrir a caixa de diálogo para novo projeto. Diga a Unity onde você deseja salvar o projeto e definir o conjunto de padrões(defaults) para: menu drop-down para 2D.


2. Configurações de compilação(Build Settings)

Na próxima etapa, você é apresentado com interface de usuário do Unity. Configurar o projeto para desenvolvimento móvel escolhendo Build Settings do menu file e selecione Android como plataforma de destino.


3. Os dispositivos

Já que estamos prestes a criar um jogo 2D, a primeira coisa que precisamos fazer depois de selecionar a plataforma de destino é escolher o tamanho da obra de arte que vamos usar no jogo. Porque o Android é uma plataforma aberta, há uma ampla gama de densidades de pixel, resoluções de tela e dispositivos disponíveis no mercado hoje. Alguns dos mais comuns são:

  • Samsung Galaxy SIII: 720px x 1280px, 306 ppi
  • Asus Nexus 7 Tablet: 800px x 1280px, 216 ppi
  • Motorola Droid X: 854px x 480px, 228 ppi

Apesar de focarmos na plataforma Android, neste tutorial, você pode usar o mesmo código para qualquer uma das outras plataformas que a Unity forneça.


4. A exportação de gráficos

Dependendo dos dispositivos que você está desenvolvendo, talvez você precise converter a arte-final para o jogo para o tamanho recomendado e densidade de pixels. Você pode fazer isso no seu editor de imagens favorito. Eu usei o ajustar de tamanho(Adjust Size)... Função no menu de Tools no aplicativo de visualização(Preview) de OS X.


5. Unity Interface de usuário

Antes de começar, certifique-se de clicar no botão 2D no painel Scene. Você também pode modificar a resolução que está sendo exibida no painel do Game.


6. Interface do jogo

A interface de nosso jogo será simples. A imagem acima dá uma ideia da obra de arte que estaremos usando e como a interface final do jogo ficará. Você pode encontrar a arte-final para este tutorial aqui nesta página.


7. Linguagem de programação

Você pode usar um dos três linguagens de programação, quando utilizar o Unity, C#, UnityScript(uma variação do JavaScript) e Boo. Cada uma dessas linguagens de programação tem seus prós e contras e cabe a você decidir qual delas você prefere. Minha preferência pessoal vai para o c#, linguagem de programação, então essa é a linguagem que vou usar neste tutorial.

Se você decidir usar outra linguagem de programação, certifique-se de dar uma olhada na  Unity's Script Reference para exemplos.


8. Gráficos 2D

Unity construiu um nome por ser uma grande plataforma para a criação de jogos 3D para diversas plataformas, como o da Microsoft Xbox 360, Sony PS3, Wii da Nintendo, web e várias plataformas móveis.

Embora sempre tenha sido possível utilizar Unity para desenvolvimento de jogos 2D, somente após lançamento da unidade 4.3 que incluía suporte nativo de 2D. Vamos aprender como trabalhar com imagens como sprites em vez de texturas nas próximas etapas.


9. Efeitos sonoros

Vou usar um número de sons para criar uma ótima experiência de áudio para o jogo. Os efeitos de som usados neste tutorial foram obtidos através dos sites as3sfxr e PlayOnLoop.


10. Importar Assets

Antes de começarmos a codificação, precisamos adicionar nossos recursos para o projeto Unity. Você pode fazer isto de várias maneiras:

  • Selecione o menu Assets e clique em Import New Assets
  • Adicionar itens à pasta assets em seu projeto 
  • Arraste e solte os ativos na janela do projeto

Depois de concluir esta etapa, você deverá ver seus assets na pasta do seu projeto de Assets no painel de projeto

11. Crie a cena(Scene)

Estamos prontos para criar a cena do nosso jogo, arrastando objetos para o painel de hierarquia(Hierarchy) ou cena(Scene).


12. O plano de fundo

Comece arrastando e soltando o fundo para o painel de hierarquia(Hierarchy). Automaticamente deverá aparecer no painel cena(Scene).

Porque o painel de cena(Scene) está definido para mostrar uma exibição 2D, você observará que selecionando a câmera principal(Main Camera) na hierarquia(Hierarchy) mostra um preview do que a câmera vai para exibir. Você também pode ver isso na exibição de jogo(Game view). Para fazer toda a cena visível, altere o valor do tamanho(Size) da câmera principal(Main Camera) a 1.58 no painel inspetor(Inspector).


13. Piso(Plataforma)

O piso é usado para manter o nosso personagem principal no jogo uma vez que nós adicionamos a física. Arraste-o da pasta Assets e posicione na cena, como mostrado abaixo.


14. Colisão com o Piso

Para fazer o piso detectar quando o personagem é tocado, precisamos adicionar um componente, uma caixa de  Colisão 2D(Box Collider 2D) para ser mais preciso.

Selecione o piso na cena, abra o painel Inspetor(Inspector) e clique em Adicionar componente(Add Component). A lista de componentes, selecione Caixa de Colisão 2D(Box Collider 2D) da seção Física 2D(Physics 2D).

15. Botão de salto

Nós usaremos os botões para controlar o nosso personagem principal no jogo. Arraste e posicione o botão de salto na cena(Scene) e adicionar um componente de círculo colisão 2D(Circle Collider2D), como mostrado na etapa anterior.


16. Som de Salto

Para tocar um som quando o personagem pula, primeiro precisamos anexá-lo para o botão de salto. Selecione hierarquia(Hierarchy) ou a visualização cena(Scene), clique no botão Adicionar componente(Add Component) no painel Inspetor(Inspector) e selecione a fonte de áudio(Audio Source) na seção de áudio(Audio).

Desmarque a opção Play on Awake e clique no ponto pequeno à direita, abaixo do ícone de engrenagem, para selecionar o som que queremos jogar quando o jogador toque o botão. Na próxima etapa, implementaremos a lógica de reprodução do som quando o jogador toque o botão.


17. Script de Salto

Vamos criar o script que irá controlar o nosso personagem. Selecione o botão de salto e clique no botão Adicionar componente(Add Component) no painel inspetor(Inspector). Selecione novo script(New Script) e denomine como Jump. Não se esqueça de alterar a linguagem para c#.

Abra o arquivo recém-criado e adicionar o seguinte trecho de código.

O trecho de código pode parecer assustador, mas é realmente bastante simples de entender depois de terminar esse jogo. Vamos primeiro obter uma referência ao objeto herói(hero), uma instância da classe GameObject, então podemos usá-lo mais tarde. Então detectar se o usuário está tocando o botão de salto e, adicionaremos uma força para o objeto de herói(hero). Por último mas não menos importante, quando o salto é efetuado o som é adcionado.

18. Botões de Movimento

As etapas para adicionar e implementar os botões de movimento, esquerdos e direito, são muito semelhantes. Comece colocando os botões na cena e adicione um círculo de colisão 2D(Circle Collider 2D) para cada botão, como fizemos com o botão de salto.



19. Script de movimento

Criar um novo script(new script) e, anexá-lo para o botão esquerdo e denomine MoveLeft. Substitua seu conteúdo com o seguinte trecho de código, que contém o método MoveLeft.

Neste script, criamos uma matriz de elementos marcados como móveis(Moveable) — nós vamos marcá-los no final deste tutorial — para tornar mais fácil para movê-los todos de uma vez. Para mover os elementos, primeiro verifique se o botão está sendo tocado e alterar a posição usando moveSpeed na função de atualização(Update). É tão simples assim.

Criar outro script, anexá-lo com o botão direito e denomine MoveRight. Esse script contém o método MoveRight e sua implementação é similar do método MoveLeft que vimos há pouco. Mudamos a direção do movimento, substituindo += moveSpeed para -= moveSpeed. Isto moverá a cena(Scene) na direção oposta.

No script MoveRight, podemos também verificar se o jogador tiver concluído o nível.

A função do alerta(Alert) cria e exibe uma mensagem para o jogador e reproduz o som ligado para o sprite de fundo. Para este trabalho, adicione o som correspondente para o sprite de fundo, como vimos no início deste tutorial. Nós também ocultaremos os botões e reiniciar o jogo com um atraso de dois segundos.

20. Sprite Sheet

Nós vamos usar uma sprite sheet para o resto dos elementos do jogo. Unity possui um editor de sprite que faz usando sprites de forma simples.. A arte usada neste tutorial foi obtida OpenGameArt.org.

Importar a arte-final, selecione-o painel Assets e altere a opção modo de Sprite(Sprite Mode) para múltiplo(Multiple) no painel inspetor(Inspector).

Abra o Sprite Editor clicando no botão abaixo e selecione Slice > Automatic.


21. O herói(Hero)

Com o sprite sheet fatiada(sliced) e pronta para usar, clique na seta que aparece quando o sprite sheet é selecionado e escolha o sprite para o herói, o personagem principal do nosso jogo. Coloque-o sobre a cena e adicionar um componente colisão 2D(Collider 2D) a ele.


22. Herói(Hero) RigidBody 2D

Para detectar uma colisão com o nosso herói, pelo menos um dos objetos colidem precisa ter um componente RigidBody 2D ligado a ele. Para adicionar um ao nosso herói, selecione Adicionar componente(Add Component) no painel Inspetor(Inspector), seguido de física 2D(Physics 2D) > RigidBody 2D.

Marque a caixa de ângulo fixo(Fixed Angle) para impedir que o herói tenha uma colisão de giro.

23. Som do herói(Hero)

Quando nosso herói é atingido por um inimigo, jogamos mais um som para dar o feedback ao jogador. Se você já jogou Super Mario Bros, então provavelmente sabe o efeito que procuramos. Para fazer isso, primeiro precisamos adicionar o som. Selecione hierarquia(Hierarchy) ou a visualização de cena(Scene view), clique no botão Adicionar componente(Add Component) no painel Inspetor(Inspector) e selecione a fonte de áudio(Audio Source) na seção de áudio(Audio).

Os detalhes do componente áudio aparecerá no painel inspetor(Inspector). Clique no ponto abaixo do ícone de engrenagem e selecione o som de sucesso.

24. Recolha de moedas

Como em muitos jogos de plataforma 2D tradicionais, você pode coletar moedas também em no nosso jogo. Porque usaremos este objeto várias vezes no jogo, nós vamos convertê-lo para um Prefab, uma vez que nós adicionamos todos os componentes necessários.

Arraste a moeda da pasta Assets e adicionar uma colisão 2D(Collider2D), como vimos nas etapas anteriores.


25. Som para moeda

Jogamos um som sempre que nosso herói coleta uma moeda. Adicione um componente da fonte de áudio(Audio Source), como vimos há pouco e selecione o som de moeda(coin) de assets do projeto.



26. Script moeda & casa Prefab

Anexe este script simples para a moeda. Ele detecta quando a moeda e o herói colidem. A moeda é destruída e um som é tocado para indicar que a moeda foi absorvida pelo herói.

Com todos os componentes no lugar, arraste a moeda do painel de hierarquia(Hierarchy) para o painel de Assets para convertê-lo para um Prefab. Você observará que o texto torna-se azul, indicando que agora é uma casa Prefab.


27. O inimigo

Não esqueçamos que os inimigos do jogo. Arraste a arte-final para o inimigo da pasta Assets e adicione dois componentes de colisão 2D(Collider 2D), como mostrado na imagem abaixo.


Os colliders são reduzidos em tamanho para impedir que o herói colida com ambos os  colliders ao mesmo tempo. Altere as configurações de cada componente de colisão 2D(Collider 2D) como abaixo.

O primeiro acelerador no painel é o collider de nível superior que adicionamos ao inimigo. Ele irá detectar se o herói pula em cima do inimigo e destrói. A lógica para esta ação é mostrada no script a seguir.

Marcamos o segundo collider como um gatilho, marcando checkbox Is Trigger. Ele detecta quando o inimigo corre para o herói, ou vice-versa. Quando isso acontece, o jogador perde o jogo.


O script anexado ao inimigo é mostrado abaixo e implementa a lógica que acabamos de discutir. Como você pode ver, o inimigo é movido para a esquerda em todos os quadros e o script detecta quando o herói pula em cima do inimigo, ou quando o herói corre para o inimigo.


28. Tijolos(Bricks)

Tijolos são usados como plataformas. O herói pode saltar sobre os tijolos para evitar os inimigos e coletar moedas. Arraste o trabalho artístico de tijolo do painel Assets e adicione um componente de colisão 2D(Collider 2D) a ele. Não se esqueça de convertê-lo para um Prefab, porque ele será usado bastante no jogo.


29. O fim

Usaremos um sprite para mostrar a linha de chegada do nível. Arraste-o do painel Assets para a cena(Scene) como mostrado na imagem abaixo.

30. Dolby Audio Plugin


Vamos melhorar a experiência de áudio do nosso jogo, usando o Plugin de áudio Dolby para Unity. No entanto, deixe-me primeiro explicar por que você deve estar usando o Plugin de áudio Dolby e como irá melhorar seu jogo.

Dolby Digital Plus é uma solução avançada de áudio incorporada em diversos dispositivos móveis, incluindo tablets. Aplicações móveis podem aproveitar os recursos Dolby Digital através da API. Alguns dos benefícios incluem a otimização de áudio, maximização de Volume e nivelamento de Volume. Dolby disponibilizou sua API para diversas plataformas, incluindo Android Kindle Fire. No nosso jogo, nós vamos aproveitar o Plugin de áudio Dolby para Unity.

Note que o plugin para Unity é livre para usar e muito fácil de integrar. Em outras palavras, não há nenhuma razão para não incluí-lo no seu próximo jogo.

Comece baixando o plugin do Dolby para Unity.  Você pode baixá-lo da Unity Asset Store ou diretamente do site do desenvolvedor do Dolby. Se você escolher a última opção, em seguida, crie uma conta gratuita para baixar o plugin ou autentique-se você já tiver uma conta de desenvolvedor do Dolby. Extraia o pacote e copie a versão que você precisa para Assets > Plugins > Android. Viu como é fácil instalar o plugin para Unity :)

Crie um novo script(new script) e anexe a um objeto que está sempre presente no jogo como plano de fundo ou a câmera. Nomeie o script para Dolby e preenchê-lo com o seguinte trecho de código.

Tenho certeza que você concorda que é muito fácil de integrar a API de áudio Dolby em seu jogo. Primeiro criamos um objeto debugText, que é do tipo GameObject, para receber o feedback do dispositivo. Em seguida, importar as funções necessárias definidas pela API de áudio Dolby e inicializar o API de áudio Dolby, se dispositivo do usuário oferece suporte a isso.

Para garantir que o serviço de Dolby está habilitado, esperamos brevemente (0.1 s) antes de chamar o método Initialize(). Se não fizermos isto, há uma chance de que você receber um erro de -1, o que pode acontecer quando você tentar definir Dolby sobre quando o serviço está ficando estabelecido.

Dolby também inclui funções para suspender e reiniciar o som quando necessário, que é útil quando mudamos para outro aplicativo e não precisamos do melhoramento do som. Isto é importante para conservar a energia da bateria e outros recursos do dispositivo. Podemos também parar o melhoramento do som completamente, invocando o release como fazemos no OnApplicationQuit.


31. Testando

É hora de testar o jogo. Pressione para jogar o jogo na Unity de Command + P no mac OS X, Windows CRTL + P. Se tudo funciona como esperado, você está pronto para as etapas finais.


32. Configurações do Jogador

Quando você está feliz com seu jogo, é hora de selecionar configurações de compilação(Build Settings) do arquivo(File) menu e clique no botão Configurações do Player(Player Settings). Isso deve abrir as configurações do Player(Player Settings) no painel Inspetor(Inspector) onde você pode definir os parâmetros para sua aplicação.

Essas configurações são específicas do aplicativo e incluem o criador ou a sociedade, a resolução do aplicativo, exibir modo, etc. Estas definições dependem os dispositivos que estão a atingir e a lojas(Apple Store, Google Play, Windows Store, Etc..) em que você vai publicar seu jogo.


33. Ícones e imagens Splash

Usando os gráficos que você criou anteriormente, agora você pode criar um ícone de boa qualidade e uma imagem de abertura para o seu jogo. Unity mostra os tamanhos exigidos, que dependem da plataforma que você está desenvolvendo.

34. Construir(Build) e jogar


Uma vez que seu projeto está configurado corretamente, é hora de revisitar as configurações de compilação(Build Settings) e clique no botão construir(Build). É tudo o que é preciso para construir o seu jogo para testes e/ou distribuição.

Conclusão

Neste tutorial, nós aprendemos sobre o novo Plugin de áudio Dolby para Unity, sprite sheets, controles, detecção de colisão e outros aspectos do desenvolvimento do jogo usando Unity com C#. Espero que você possa construir maravilhosos jogos a partir de agora. Espero que você tenha gostado deste tutorial e ache útil.Não esqueça, comente, compartilhe, informação para todos são importante para construir uma sociedade mais justa!

Seja o primeiro a saber sobre novas traduções–siga @tutsplus_pt no Twitter!

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.