Seja bem-vindo(a) ao GameDev: Aprendendo a programar jogos em Unity de hoje! Agora que já implementamos, em nosso encontro anterior, os tipos de agentes de doenças que planejamentos para nosso jogo, vamos configurar os cinco modelos tridimensionais de pílulas que temos à disposição para que possam interagir adequadamente com os micróbios no ambiente interno do labirinto.
Se esta for a primeira vez que você acessa um texto de nossa série, aproveite esta oportunidade para juntar-se a nós em um divertido processo de aprendizado sobre o universo do desenvolvimento de games. Colocando a “mão na massa”, iremos elaborar diferentes projetos práticos que nos auxiliarão a descobrir como a ferramenta Unity pode nos ajudar nas mais diferentes etapas do processo de criação de jogos digitais.
Por falar em projetos práticos, no momento estamos imersos no desenvolvimento de nosso terceiro projeto, envolvendo a criação de um platformer 3D chamado Consultório do Dr. Tratanildo. Trata-se de um game ambientado em um consultório médico tridimensional, cuja elaboração está nos permitindo aprender sobre diferentes conceitos envolvendo, por exemplo, o uso de câmeras e a interação entre elementos no cenário.
Embora alguns assuntos possam parecer complexos à primeira vista, não se sinta intimidado: a série foi desenvolvida para que todos aqueles que tenham interesse em aprender sobre criação de games possam descobrir como tirar do papel os projetos que sempre sonharam em ver tornarem-se realidade, mesmo se não tiveram contato antes com conteúdos sobre o tema.
A partir do primeiro texto da série, são abordados desde os tópicos mais básicos, como a instalação e configuração da ferramenta em nossos computadores, até alguns considerados mais desafiadores, como a codificação de comportamentos e de regras, a inserção de elementos multimídia nas fases e a configuração de interações entre personagens e itens em um cenário, por exemplo.
Permita-se e venha conosco para, juntos, seguirmos nesta caminhada rumo a novos conhecimentos!
Concedendo tags às pílulas
Após termos concluído a inserção das diferentes variações de micróbios que irão participar de nosso game, vamos testar a eficácia de cada tipo de medicamento disponível no projeto contra os agentes de doenças. Para isso, vamos abrir nosso projeto para edição: no Unity Hub, clique duas vezes sobre o item referente ao projeto Consultório do Dr. Tratanildo. Na interface inicial do editor, na aba Project, abra a pasta Assets, Scenes e, por fim, clique duas vezes no ícone da cena ConsultorioScene.
Vamos observar como estão configuradas no momento as pílulas de saúde presentes no labirinto: na aba Hierarchy, clique sobre o GameObject Pilula_vermelha, subordinado a Medicamentos:
Note que, para realizarmos os testes de colisão entre medicamentos e agentes de doenças, tivemos de alterar e configurar manualmente alguns componentes para os objetos: na aba Inspector, podemos ver que foram adicionados componentes de tipos Rigidbody e Sphere Colllider, além da remoção de um Box Collider:
Essas alterações não foram repassadas aos Prefabs dos medicamentos pois pretendíamos que elas não interferissem nos comportamentos em cena de algumas pílulas que compõem o cenário do consultório. A imagem a seguir nos faz recordar sobre onde estão estes objetos, próximos às prateleiras:
Para que possamos implementar as demais pílulas de saúde no labirinto de forma adequada, iremos inicialmente realizar uma pequena alteração no valor das tags dos Prefabs de origem dos medicamentos e, posteriormente, gerar novos Prefabs derivados destes, para que possamos adicionar os novos componentes necessários (Rigidbody e Sphere Colllider) sem interferir nas pílulas presentes no consultório.
Na aba Project, abra as pastas Assets, Multimedia, 3D e, por fim, NossasPilulas. Selecione o ícone que representa o Prefab Pilula_vermelha e, na aba Inspector, modifique o valor de seu atributo Tag para o elemento de nome medicamentoVermelho, conforme indicado a seguir:
Agora, novamente na aba Project, selecione o ícone que representa o Prefab Pilula_verde. Na aba Inspector, note que ele também teve o valor de seu atributo Tag modificado para medicamentoVermelho:
O comportamento observado é normal, visto que todos os Prefabs referentes à medicamentos, até o momento, são derivados do Prefab de Pilula_vermelha por terem sido criados como variantes deste.
Vamos modificar, então, o valor do atributo Tag de Pilula_verde para o elemento de nome medicamentoVerde, conforme imagem a seguir ilustra:
Ação semelhante será tomada em relação ao Prefab Pilula_roxa: altere o valor de seu atributo Tag para o elemento de nome medicamentoRoxo:
Repita a operação para o Prefab Pilula_azul, dessa vez indicando o elemento de nome medicamentoAzul ao seu atributo Tag:
Por fim, mas não menos importante, configure o valor do atributo Tag de Pilula_amarela para o elemento de nome medicamentoAmarelo:
Criando novos Prefabs
Após a correção realizada, vamos criar e configurar novas Prefab Variants para que possam receber componentes que serão úteis no ambiente do labirinto; dessa forma, não precisaremos inserir manualmente nenhum elemento para que os GameObjects derivados delas funcionem bem ao serem adicionados à representação interna dos corpos dos pacientes.
Para organizarmos adequadamente os novos itens em nosso projeto, na aba Project, crie uma subpasta dentro de NossasPilulas e conceda-lhe o nome de “PilulasLabirinto”, sem as aspas.
Agora, ainda em NossasPilulas, selecione os cinco Prefabs que representam os medicamentos, clique com o botão direito sobre eles e, no menu suspenso que for exibido, selecione a opção Create e, em seguida, Prefab Variant, conforme exemplificado pela imagem a seguir:
Veja que, desta forma, conseguimos criar cinco novas variantes de uma só vez:
Ainda na aba Project, selecione os cinco novos Prefab Variants criados, clique e arraste-os em direção ao ícone da subpasta PilulasLabirinto. Após movê-los para o novo diretório criado, clique duas vezes sobre PilulasLabirinto e renomeie cada uma das cinco variantes conforme indicado a seguir:
- De “Pilula_amarela Variant” para “Pilula_amarela_lab”;
- De “Pilula_azul Variant” para “Pilula_azul_lab”;
- De “Pilula_roxa Variant” para “Pilula_roxa_lab”;
- De “Pilula_verde Variant” para “Pilula_verde_lab”;
- De “Pilula_vermelha Variant” para “Pilula_vermelha_lab”.
Na aba Project, selecione os cinco elementos recém-renomeados para que possamos iniciar a configuração dos componentes comuns ao quinteto.
Iniciaremos o processo removendo o componente Box Collider de todas as variantes selecionadas: na aba Inspector, clique com o botão direito sobre o título do componente Box Collider e, em seguida, selecione a opção Remove Component.
Em seguida, será o momento de inserirmos um componente do tipo Rigidbody a cada um dos novos Prefabs. Para tal, iremos copiar para o quinteto de medicamentos um componente deste tipo que já foi inserido e configurado previamente e que, atualmente, está atrelado aos medicamentos presentes no labirinto.
Na aba Hierarchy, selecione o objeto Pilula_vermelha. Na aba Inspector, clique com o botão direito sobre o título do componente Rigidbody e, em seguida, selecione a opção Copy Component.
Quando realizamos a cópia de um componente, todos os valores que ajustamos para seus respectivos atributos também são copiados, o que em nosso caso concreto é bem interessante, pois garantirá que as novas pílulas funcionarão de maneira semelhante às já testadas no labirinto.
Na aba Project, volte a selecionar os cinco Prefabs presentes em PilulasLabirinto. Na aba Inspector, clique com o botão direito sobre o título do componente Transform e selecione a opção Paste Component As New.
Note que, logo após o componente Transform, é exibido um novo componente do tipo Rigidbody. Como estamos com todos os Prefabs selecionados no momento, uma nova cópia do componente foi atrelada para cada um dos cinco elementos
Vamos “repetir a dose”, selecionando via aba Hierarchy o GameObject Pilula_vermelha e copiando desta vez seu componente Sphere Collider:
Novamente, selecione os cinco Prefabs e, na aba Inspector, clique com o botão direito sobre o título do componente Transform e selecione a opção Paste Component As New.
Agora sim, temos cinco medicamentos prontos para passarem por exaustivas baterias de testes contra os terríveis agentes de doenças de nosso labirinto!
Realizando testes
Na aba Hierarchy, selecione os objetos Pilula_vermelha e Pilula_verde (subordinados a Medicamentos) e delete-os. Vamos substituí-los por GameObjects derivados dos novos Prefabs.
Ainda com o conteúdo da pasta PilulasLabirinto em evidência na aba Project, selecione os cinco elementos presentes no diretório e arraste-os em direção ao item que representa o GameObject Medicamentos na aba Hierarchy. Um novo objeto referente a cada variante dos remédios será listado subordinadamente a Medicamentos, conforme podemos visualizar na imagem a seguir:
Por fim, selecione os cinco novos GameObjects que surgiram na aba Hierarchy e, na aba Inspector, conceda os seguintes valores aos atributos de seus respectivos componentes Transform:
- Pilula_amarela_lab: Position X = -2, Y = 0.5, Z = -6;
- Pilula_azul_lab: Position X = -7.5, Y = 0.5, Z = -7;
- Pilula_roxa_lab: Position X = 2, Y = 0.5, Z = -3;
- Pilula_verde_lab: Position X = 7.5, Y = 0.5, Z = -7;
- Pilula_vermelha_lab: Position X = 0, Y = 0.5, Z = 4.75.
Finalmente, depois de tantas configurações manuais, chegou a hora de testarmos se esses remédios coloridos realmente dão conta de tantos agentes de doenças diferentes. Para isso, vá à aba Game e clique sobre o ícone do botão Play:
Encerre a simulação da execução, clicando novamente sobre o ícone do botão Play e retornando à aba Scene. Não se esqueça de salvar a cena (menu File, opção Save) e o projeto (menu File, opção Save Project) antes de fechar o editor.
Próximos passos
Já podemos dizer que, no contexto de nossa aventura, para cada agente de doenças existente temos um remédio bem eficaz à disposição. Quem dera no mundo real também fosse dessa forma, não é?
Em nossos próximos encontros, iremos aplicar aos agentes de doenças e às pílulas de saúde as mesmas técnicas implementadas há alguns encontros atrás que permitiram o surgimento dinâmico de caminhos e obstáculos no labirinto por meio da passagem de parâmetros ao jogo, além de efetuarmos outras correções gerais em diferentes elementos do cenário.
Nosso próximo encontro será no dia 26 de janeiro. Até mais! Fique sempre ligado nas novidades do GameBlast!
Revisão: Davi Sousa