Aprendendo a programar jogos em Unity: configurando os três primeiros pacientes

Realizaremos ajustes tanto em relação à postura do médico quanto aos pacientes iniciais do game.

em 24/08/2025
Seja bem-vindo(a) ao GameDev: Aprendendo a programar jogos em Unity de hoje! Em nosso encontro anterior, concluímos a ligação entre as etapas preliminares da interação entre médico e paciente e o módulo seguinte do game, permitindo ao jogador controlar o médico pelo cenário após a cutscene entre os dois personagens do momento. Hoje iremos começar a configurar elementos do projeto para que, em breve, possamos ajustar o comportamento do núcleo de configuração e controle do labirinto, das doenças e das pílulas miraculosas.

Se esta for a primeira vez que você tem contato com conteúdos de nossa série, sinta-se especialmente convidado a mergulhar de cabeça em uma jornada repleta de experiências práticas, que irão nos permitir criar nossos próprios games e, por consequência, adquirir interessantes novos conhecimentos sobre o mundo do desenvolvimento de jogos digitais.

Por meio da elaboração de projetos práticos de programação, teremos a oportunidade de aprender mais sobre como a ferramenta Unity pode nos auxiliar a criar jogos dos mais diferentes estilos gráficos e de gameplay.

No momento, estamos desenvolvendo o game Consultório do Dr. Tratanildo: trata-se de um puzzle ambientado em um consultório médico 3D cuja narrativa gira em torno dos tratamentos miraculosos que Doutor Tratanildo Doencita realiza em seus pacientes, por meio do uso das pílulas de saúde. Certas características de seu gameplay remetem a clássicos dos anos 1980 e 1990, tais como Dr. Mario (Nintendo, 1990) e Pac-Man (Namco, 1980).


O projeto citado é o terceiro de nossa série; anteriormente, desenvolvemos outros dois games bem interessantes: Forest Ping Pong, inspirado no clássico Pong (Atari, 1972), e Motorista da Pesada, um platformer cujo gameplay apresenta semelhanças com City Connection (Jaleco, 1985).

Não se preocupe se, em um primeiro momento, considerar que os conteúdos da série são complexos ou de difícil compreensão. Caso esta seja a primeira vez que você tem contato com programação de jogos ou de sistemas, recomendamos que acompanhe a série a partir do primeiro tópico, pois abordamos desde os conceitos mais básicos do processo, como a instalação das ferramentas que utilizaremos em nossos computadores, até a configuração e programação, de fato, dos conteúdos que pertencem às fases de nossos games, como os elementos multimídia, os scripts controladores de comportamentos e de regras, dentre outros.

Também no primeiro tópico, você poderá encontrar um índice com o conteúdo completo envolvendo o desenvolvimento dos três games que compõem a série; inclusive, em relação aos dois primeiros, você terá a oportunidade de experimentá-los por meio de seu navegador de Internet. Vale muito a pena dar uma conferida!

Então, o que você acha da ideia de tirar do papel aquele jogo que sempre sonhou em tornar realidade? Venha conosco para seguirmos juntos em uma divertida trilha, repleta de novos conhecimentos e de muita diversão!

Postura de médico

Após concluirmos a construção da conexão entre as etapas iniciais da aventura, vamos configurar parâmetros importantes para o prosseguimento do jogo. Porém, antes de iniciarmos essa etapa, vamos corrigir a postura de DoutorConversa, tirando o aspecto “robótico” de seu modelo que, durante as cutscenes, apresentava-se com os braços esticados para frente.

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 AssetsScenes e, por fim, clique duas vezes no ícone da cena ConsultorioScene.

Na aba Project, abra sequencialmente as pastas Assets, Multimedia, 3D e, por fim, Animacoes. Clique com o botão direito do mouse sobre uma área vazia da pasta e, no menu suspenso, selecione a opção Create e, em seguida, Animator Controller. Conceda o nome “animControllerDoutorParado” ao novo controlador, conforme indicado a seguir:

Clique duas vezes sobre o ícone do recém-criado controlador, para que possamos realizar edições em seu fluxo de animações via aba Animator.

Na aba Project, clique e arraste o ícone da animação “animParado” em direção à janela da aba Animator. Um novo retângulo laranja será exibido, representando a referida animação, conforme pode-se observar a seguir:

Clique com o botão direito sobre o retângulo laranja, no menu suspenso, selecione a opção Make Transition e, em seguida, clique novamente sobre o retângulo laranja, desta vez com o botão esquerdo do mouse. Uma pequena seta branca surgirá abaixo da representação do estado de animação, representando a transição cíclica entre o estado e ele mesmo.

Por fim, na aba Hierarchy, selecione o GameObject DoutorConversa, subordinado a Doutores, que, por sua vez, encontra-se subordinado a Personagens. Na aba Inspector, altere o valor do parâmetro Controller de seu componente Animator para o item que representa o novo controlador criado (animControllerDoutorParado).

Com essa alteração, configuramos o modelo de Tratanildo presente nas cutscenes iniciais para que abaixe seus braços e permaneça em uma posição mais natural, condizente com o que se espera do médico nessa situação.

Os três primeiros pacientes

Durante a construção da etapa inicial de interação entre médico e paciente, utilizamos textos de exemplo para testarmos os diálogos entre os personagens. Agora, para continuarmos a construção do jogo, é interessante alimentarmos as variáveis do controlador de fases com dados sobre os três primeiros pacientes a serem atendidos por Tratanildo Doencita, já considerando seus tipos e falas definitivas.

Na aba Hierarchy, selecione o objeto ControladorFase para que possamos iniciar o preenchimento dos valores dos atributos de seu componente Controller Fase, via aba Inspector.

O primeiro vetor de variáveis que receberá informações sobre os pacientes é Tipo Paciente. Inicialmente, preencha o campo presente ao lado de seu nome com o valor 3 e pressione a tecla Enter. Com o tamanho do vetor definido, complete os campos a seguir com os valores descritos:
  • Element 0: 1; 
  • Element 1: 7;
  • Element 2: 5.
Dessa forma, estaremos determinando os tipos dos três primeiros pacientes a serem atendidos pelo médico em seu consultório, baseados nos valores de Estilos Visuais Pacientes:

O segundo vetor de variáveis a receber intervenções é Fala Paciente. O tamanho do vetor também deverá ser igual a 3 e, em seguida, os campos indicados a seguir deverão receber os respectivos conteúdos listados, desconsiderando as aspas:
  • Element 0: “Doutor Tratanildo, preciso de sua ajuda. Estou há cinco dias sem conseguir ir ao banheiro. Como posso resolver isso?”;
  • Element 1: “Bom dia, doutor Tratanildo. O senhor tem como... cof... cof... me ajudar a parar com... cof... cof... esta minha tosse irritante?”;
  • Element 2: “Doutor Laranjildo, me ajude a... o que eu vim fazer aqui mesmo?... Hum... Me lembrei! Me ajude a interromper estes meus esquecimentos.”.
Pelo visto, nosso querido médico terá de adotar métodos bem eficazes para tratar enfermidades tão diferentes entre si, não é mesmo?

Em seguida, realize intervenções semelhantes ao vetor de variáveis Fala Doutor, concedendo um tamanho de valor igual a 3 e os respectivos valores a seus elementos internos listados a seguir:
  • Element 0: “Fique tranquilo, jovem. Nada que uma boa dose de pílulas vermelhas não resolva. Me aguarde no leito, por gentileza.”;
  • Element 1: “Claro, senhorita, com uma boa dose de pílulas amarelas sua tosse vai pro espaço. Por favor, dirija-se ao leito.”;
  • Element 2: “Meu nome é Tratanildo, jovem, não Laranjildo... Enfim, deite-se no leito que irei preparar uma boa dose de pílulas roxas para você.”.
Note que nossa estratégia inicial para o jogo envolverá a utilização de um tipo de pílula para cada um dos três primeiros casos clínicos analisados. Isso é proposital, pois pretendemos que o nível de dificuldade inicial do jogo não seja muito acentuado. Posteriormente, criaremos casos clínicos que envolverão o uso de duas ou mais pílulas de cores diferentes.

Por fim, realizaremos intervenção também em Tempo Max Tratamento, concedendo ao vetor o mesmo tamanho que os demais (3) e preenchendo em todos os campos de seus respectivos elementos internos o valor 180, representando um tempo-limite de três minutos para que se solucione cada um dos três casos clínicos.

Logo após Tempo Max Tratamento, temos à disposição uma grande variedade de variáveis a serem preenchidas, tais como as que representam as posições dos monstros coloridos no labirinto.

Essas variáveis terão de ser preenchidas posteriormente, pois, até o momento, ainda não codificamos a interação entre os vetores de variáveis presentes em Controller Fase e os que, de fato, fazem parte do processo de construção do labirinto, codificados dentro do script MontaLabirinto.

Que tal experimentarmos a execução do game para notarmos como ficou a interação entre o médico e o primeiro paciente programado? Para tal, vá até a aba Game e pressione o ícone do botão Play:

Interrompa a simulação, clicando novamente sobre o ícone do botão Play e voltando à 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

Como indicado anteriormente, precisaremos realizar ajustes para que os parâmetros que programarmos referentes a cada fase se comuniquem entre os scripts que controlam a fase e o labirinto. Essa será a nossa próxima tarefa dentro do projeto Consultório do Dr. Tratanildo, por meio de intervenções nos códigos existentes e acréscimo de estruturas de controle em ambos os scripts.

Nosso próximo texto já encontra-se disponível, continue conosco nessa jornada de conhecimento e fique ligado sempre aqui no GameBlast!

Revisão: Ives Boitano
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 4.0).