Aprendendo a programar jogos em Unity: a hora e a vez do micróbio amarelo

Iniciaremos o processo de criação e configuração das diferentes variantes dos agentes de doenças presentes em nosso labirinto.

em 05/01/2025
Seja bem-vindo(a) ao GameDev: Aprendendo a programar jogos em Unity de hoje! Após realizarmos, no encontro anterior, interessantes alterações estéticas relacionadas ao labirinto que representa o interior dos corpos dos pacientes de doutor Tratanildo Doencita, começaremos a implementar variantes coloridas dos microrganismos no game, inspiradas nas cores das pílulas miraculosas que o médico utilizará em seus tratamentos.

Se esta for a primeira vez que você tem contato com nossa série, não se acanhe e junte-se a nós em uma interessante jornada, repleta de aprendizados e conteúdos interessantes relativos ao mundo do desenvolvimento de games. Por meio da criação de projetos práticos, descobriremos como a ferramenta Unity pode nos ajudar a criar games de diferentes estilos, mecânicas e objetivos.

No momento, estamos elaborando o jogo Consultório do Dr. Tratanildo. Trata-se de um platformer 3D ambientado em um excêntrico consultório médico, cujo desenvolvimento está nos proporcionando a oportunidade de aprender interessantes conceitos sobre aspectos importantes da criação de um game em ambiente tridimensional, tais como a inserção e configuração de elementos multimídia em cena, utilização de múltiplas câmeras simultaneamente, elaboração de scripts controladores de regras e comportamentos, entre outros.


Mesmo se esta for a primeira vez que você acessa um conteúdo sobre programação de jogos, fique tranquilo: a partir do texto inicial da série, são abordados desde os tópicos considerados mais básicos, como a instalação e configuração da ferramenta em nossos computadores, até os passos que, de fato, nos ajudarão a tirar do papel os games que sempre sonhamos em tornar realidade. 

Venha conosco para, juntos, seguirmos nesta caminhada rumo a novos conhecimentos!

Um novo Prefab

Depois de deixarmos nosso ambiente labiríntico bem propício à proliferação de micróbios, chegou a hora de criarmos as variantes dos monstrinhos causadores de tanto sofrimento aos pobres pacientes do doutor Tratanildo.

Já temos em cena o primeiro tipo de agente de doenças, tratável por ação do medicamento de cor verde, mas, como criamos outros quatro tipos de pílulas (amarela, azul, roxa e vermelha), é importante iniciarmos a configuração de suas variantes. Para tal, 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.

Inicialmente, vamos dar uma olhada em como está estruturado o primeiro microrganismo que inserimos no labirinto. Na aba Hierarchy, selecione o GameObject de nome DoencaVerde, subordinado ao objeto Doencas, que, por sua vez, encontra-se subordinado a Labirinto.

Relembrando um pouco sobre como realizamos a configuração de DoencaVerde no labirinto, inicialmente inserimos uma cópia do modelo de nome “slimemodel 1” em cena e, posteriormente, adicionamos e configuramos os componentes presentes hoje na aba Inspector, conforme a imagem a seguir ilustra.

Da forma que está hoje, nosso pequeno colega verde é um bom candidato a servir de base para a criação de outros agentes patológicos semelhantes a ele, já que contempla a presença de componentes que também serão necessários nas demais representações de microrganismos, como Box Collider e Comportamento Doenca.

Sendo assim, vamos inicialmente transformar seu GameObject em um Prefab, permitindo que, ao gerarmos suas variantes, não precisemos inserir manualmente todos os componentes que determinam como um agente de doenças deve se comportar no labirinto.

Primeiramente, na aba Project, abra as pastas Assets, Multimedia e, por fim, 3D. Crie uma nova subpasta e conceda-lhe o nome “NossasDoencas”, sem as aspas.

Clique duas vezes sobre o ícone de NossasDoencas para abrir a pasta criada. Na aba Hierarchy, clique e arraste o elemento que representa o GameObject DoencaVerde para um espaço vazio da pasta aberta na aba Project, conforme exemplificado a seguir:

Ao ser exibida a seguinte mensagem, selecione a opção Original Prefab:

Uma questão importante

Antes de prosseguirmos, vale aqui uma explicação interessante. Talvez você tenha ficado um pouco confuso com os termos da mensagem exibida, pois o Unity acaba nos questionando se queremos criar uma variante do Prefab atual ou um novo Prefab original. Oras, mas nós já tínhamos um Prefab criado anteriormente, ou não?

O fato é que, em alguns aspectos, o Unity trata de forma semelhante os Prefabs que criamos em seu editor e os arquivos que representam os modelos tridimensionais, como o modelo de origem da representação tridimensional da doença (slimemodel 1). Isso fica mais explícito quando percebemos que GameObjects criados a partir de ambos (arquivos de Prefab e arquivos de modelos 3D) são apresentados na cor azul na aba Hierarchy:

A principal diferença reside no fato de que um arquivo que armazena um modelo tridimensional armazena apenas informações “visuais” do elemento (texturas, estrutura, animações, etc).

Portanto, foi por isso que criamos um novo Prefab de fato: para guardarmos em seu arquivo informações sobre, por exemplo, os parâmetros dos componentes que serão atrelados aos objetos criados a partir dele. Dadas as explicações, vamos em frente!

Criando um Prefab Variant

Note que, agora, temos um Prefab criado a partir do que configuramos para o objeto DoencaVerde:

Vamos criar a primeira variante de nosso perigoso colega. Na aba Project, clique com o botão direito do mouse sobre o ícone do recém-criado Prefab e, no menu suspenso, selecione a opção Create e, por fim, Prefab Variant, conforme ilustrado na imagem a seguir:

Como o nome já denuncia, um Prefab Variant é um elemento que representa uma variação de outro Prefab presente em um projeto. Trata-se de um recurso muito interessante do Unity, pois permite a customização de determinadas características de um Prefab sem perder as referências ao elemento de origem.

É possível, por exemplo, que as variantes de um Prefab recebam eventuais atualizações e modificações de características que forem aplicadas ao Prefab original sem que, com isso, elas percam as características que as mantêm únicas, como valores de parâmetros de componentes.

Ao Prefab Variant que acabamos de criar, conceda o nome “DoencaAmarela”, sem as aspas:

Por enquanto, DoencaAmarela ainda é uma cópia exata de DoencaVerde. Para mudar este panorama, vamos iniciar sua edição clicando duas vezes sobre seu ícone. O novo agente de doenças será exibido em foco na aba Scene.

As duas alterações que iremos realizar para cada variante serão estas:
  • Alterar a coloração dos micróbios, deixando-os com tons de cores semelhantes às dos medicamentos que irão combatê-los;
  • Modificar os valores dos parâmetros do componente Comportamento Doenca.
Vamos começar nossas alterações pela modificação da coloração do agente. Não existe uma regra fixa para cada modelo tridimensional, mas, normalmente, os objetos subordinados ao modelo principal que apresentam componentes do tipo Renderer são os que influenciam o aspecto visual do GameObject em si.

Em nosso caso concreto, o objeto Model é o que está relacionado ao modelo visual do corpo do microrganismo, e os objetos Eye.L e Eye.R correspondem ao modelo de seus olhos.


Para modificarmos apenas a coloração da pele do boneco, na aba Hierarchy, selecione o GameObject de nome Model. Ele terá atrelado a si um componente do tipo Skinned Mesh Renderer, conforme a imagem a seguir indica:

Vamos alterar o valor de Element 0 do parâmetro Material de seu componente Skinned Mesh Renderer para o mesmo material utilizado na coloração da pílula amarela, escolhendo na lista o elemento de nome matPilula_amarela. Note como mudou a representação gráfica do boneco na tela:

Por fim, vamos modificar os valores dos parâmetros do componente Comportamento Doenca. Na aba Hierarchy, selecione o objeto DoencaAmarela e, na aba Inspector, deixe apenas a opção Is Amarelo selecionada na lista de parâmetros de Comportamento Doenca, como a imagem a seguir indica:

Finalizamos, por enquanto, as alterações referentes à variante amarela do agente de doenças. Certifique-se de que a opção Auto Save está selecionada e clique na seta ao lado do nome do Prefab para voltarmos ao modo de edição da cena:

Que tal introduzirmos o novo monstrinho amarelo em cena? Para isso, na aba Project, abra novamente a pasta NossasDoencas e, a seguir, clique e arraste o ícone do item DoencaAmarela em direção ao GameObject Doencas, presente na aba Hierarchy. Certifique-se de que o novo objeto encontra-se subordinado a Doencas, conforme exemplificado a seguir:

Selecione o objeto DoencaAmarela e conceda os seguintes valores aos parâmetros de seu componente Transform:
  • Position X = -4, Y = 0, Z = 0;
  • Rotation X = 0, Y = 270, Z = 0;
  • Scale X, Y e Z = 0.5.
Finalmente, vamos simular a execução do game para vermos o novo monstrinho em cena. Para isso, vá à aba Game e clique sobre o ícone do botão Play:

Por meio da simulação, podemos perceber que o agente amarelo é imune a medicamentos de outros tipos, como o vermelho, e o agente verde continua reagindo à pílula de sua respectiva cor, o que é muito bom.

Por ora, vamos encerrar a simulação, pressionando novamente o botão Play. 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

Agora que introduzimos a variante amarela do terrível, porém simpático micróbio causador de doenças em nosso game, a porteira está aberta: em nossos próximos encontros, criaremos os demais agentes patológicos e daremos sequência ao processo de configuração de importantes aspectos comportamentais a serem herdados por todos os monstrinhos de nosso projeto.

Nosso próximo encontro será no dia 12 de janeiro. Até mais! Fique sempre ligado nas novidades do GameBlast!

Revisão: Davi Sousa
Siga o Blast nas Redes Sociais
Rodrigo Garcia Pontes
Entendo videogames como sendo uma expressão de arte e lazer e, também, como uma impactante ferramenta de educação. No momento, doutorando em Sistemas da Informação pela EACH-USP, desenvolvendo jogos e sistemas desde 2020. Se quiser bater um papo comigo, nas redes sociais procure por @RodrigoGPontes.
Este texto não representa a opinião do GameBlast. Somos uma comunidade de gamers aberta às visões e experiências de cada autor. Você pode compartilhar este conteúdo creditando o autor e veículo original (BY-SA 3.0).