Se esta é a primeira vez que você acessa nossa série, junte-se já a nós e venha aprender, de forma prática e divertida, muitos conceitos interessantes sobre o desenvolvimento de jogos utilizando a plataforma Unity.
A partir do primeiro texto da série, por meio da elaboração de diferentes projetos, você terá a oportunidade de, pondo a mão na massa, criar games de diversos estilos, podendo adquirir conhecimentos valiosos sobre várias funcionalidades e processos que a ferramenta nos coloca à disposição para, quem sabe, tirar do papel aquele jogo que sempre sonhou em tornar realidade.
Venha conosco e vamos juntos nesta caminhada rumo a novos conhecimentos!
Posicionando pilastras
Anteriormente, quando realizamos a descompactação dos elementos iniciais do cenário, deixamos um dos itens reservado para uso futuro; no caso, o GameObject de nome wall_pilar. Iremos iniciar nossa edição utilizando-o como forma de deixar as quinas do consultório arredondadas, dando um ar mais sofisticado a um ambiente que, mesmo com tantas intervenções, ainda está um pouco “quadradão”.
Vamos iniciar as edições abrindo o Unity Hub e clicando duas vezes sobre o item referente ao projeto Consultório do Dr. Tratanildo. Na interface inicial do Unity, na aba Project, abra a pasta Assets, Scenes e, por fim, clique duas vezes no ícone da cena ConsultorioScene.
Na aba Hierarchy, selecione o objeto wall_pilar. Na aba Inspector, ative o objeto, clicando na caixa de seleção ao lado do seu nome, conforme exemplificado pela imagem a seguir:
Volte a selecionar o objeto via aba Hierarchy e renomeie-o para Pilastra_1. Edite os valores dos atributos de seu componente Tranform conforme indicado a seguir:
- Position X = 28.5, Y = 5, Z = 13;
- Rotation X = 0, Y = 45, Z = 0;
- Scale X, Y e Z = 0.
Agora iremos editar os valores dos atributos dos componentes Tranform de cada um dos novos objetos. Para Pilastra_2, serão os seguintes valores:
- Position X = -14, Y = 5, Z = 12.5;
- Rotation X = 0, Y = -45, Z = 0.
Para Pilastra_3, os valores a serem inseridos são estes:
- Position X = 29, Y = 5, Z = -22.5;
- Rotation X = 0, Y = -45, Z = 0.
Por fim, altere os valores de Pilastra_4 conforme indicado a seguir:
- Position X = -13.5, Y = 5, Z = -23;
- Rotation X = 0, Y = 45, Z = 0.
Os objetos ficarão posicionados em cena conforme destacado na imagem:
Organização dos GameObjects
Já realizamos a inserção e o posicionamento de diversos objetos em cena nos últimos encontros; alguns mais voltados à composição da estrutura física do consultório em si e outros com características mais decorativas. Porém, até o momento, estamos armazenando os GameObjects inseridos majoritariamente como sendo subordinados a CenarioFixo, o que acaba por prejudicar um pouco a localização de determinados itens, devido a termos mais de 20 GameObjects na mesma listagem apresentada na aba Hierarchy.
Portanto, para organizar melhor os elementos pertencentes à cena, iremos criar subgrupos de objetos dentro da estrutura de GameObjects hierarquicamente ligados a CenarioFixo. Vamos iniciar pelo subgrupo de elementos que façam parte da ambientação do consultório.
Na aba Hierachy, clique com o botão direito sobre CenarioFixo e selecione a opção Create Empty, conforme exemplo a seguir:
Dê o nome Ambientacao ao novo objeto criado, certificando-se de que os valores do atributo Position (X, Y, Z) de seu componente Transform são todos iguais a zero.
Na aba Hierarchy, selecione todos os objetos subordinados a CenarioFixo, com exceção de Ambientacao, de PilulasCenograficas e dos GameObjects que representam lâmpadas. Clique e arraste os objetos selecionados em direção ao item Ambientacao.
Após a realização da ação, os itens representados na imagem a seguir estarão subordinados ao GameObject Ambientacao:
Iremos, agora, agrupar os objetos que fazem parte do grupo de itens que influenciam na iluminação do ambiente. Na aba Hierarchy, novamente iremos criar um novo objeto subordinado a CenarioFixo, clicando com o botão direito sobre o referido GameObject e selecionando a opção Create Empty. Vamos conceder o nome Iluminacao ao novo objeto criado.
Selecione os GameObjects Lampada1, Lampada2, Lampada3, Lampada4 (subordinados a CenarioFixo) e Directional Light. Clique e arraste todos em direção ao item Iluminacao. Todos estarão subordinados ao referido GameObject, conforme a imagem a seguir ilustra:
Agora que temos nossos elementos melhor organizados, chegou a hora de começar a construção do leito.
Posicionando a base
A primeira etapa da confecção do leito hospitalar envolverá a criação de mais um objeto para organização de seus elementos internos. Na aba Hierachy, clique com o botão direito sobre CenarioFixo e selecione a opção Create Empty. O nome do novo objeto será Leito.
Altere os valores dos parâmetros do componente Transform de Leito conforme segue:
- Position X = 21, Y = 0, Z = -16.75.
O GameObject Leito contemplará tanto a base de sustentação da cama hospitalar quanto o leito propriamente dito.
Clique com o botão direito sobre Leito e, no menu suspenso, selecione a opção 3D Object e, em seguida, Cube:
Dê o nome BaseCama ao novo GameObject criado. Os valores dos atributos de seu componente Transform deverão ser trocados pelos descritos a seguir:
- Position X = 0, Y = 0.5, Z = 0;
- Scale X = 16, Y = 1, Z = 10.
Vamos alterar a cor da base, criando um novo material e atrelando ao componente Mesh Renderer de BaseCama. Na aba Project, abra as pastas Assets, Multimedia, 3D e, por fim, leitoMat.
Já temos dentro dessa pasta as texturas e os materials que serão importantes na configuração da cama do leito, mas vamos aproveitar a pasta para armazenar, também, um material adicional, referente à base. Em um espaço vazio da janela Project, clique com o botão direito, selecione Create e, por fim, Material. Dê o nome matBaseCama ao novo material criado, conforme exemplificado a seguir:
- Cor de Albedo: R = 64, G = 64, B = 64, A = 255;
- Metallic = 1;
- Smoothness = 1.
Nosso novo material se parecerá com um metal escuro, de aparência bem polida, diferente dos outros elementos que inserimos até o momento. Na aba Hiearchy, selecione BaseCama e troque o valor de Element1 do parâmetro Materials de seu componente MeshRenderer para o novo material criado (matBaseCama). Veja como ficou a base em cena:
Agora, vamos posicionar a cama logo acima da base recém-inserida. Na aba Project, abra as pastas Assets, Multimedia e, por fim, 3D. Procure pelo modelo tridimensional de nome leito_hospitalar. Selecione-o, depois clique e arraste seu item em direção a Leito, presente na aba Hierarchy. Um novo elemento de nome leito_hospitalar surgirá como um objeto subordinado a leito, conforme a imagem a seguir ilustra:
Por enquanto, ainda não podemos ver o novo objeto em cena, pois suas dimensões ainda são bem menores do que o que precisamos para deixá-lo adequadamente posicionado em cena; mas essa tarefa iremos concluir em nosso próximo encontro.
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
Iniciamos hoje a tão sonhada etapa de construção do leito de nosso consultório. Como havíamos introduzido diversos elementos em cena, foi necessário também realizar uma organização prévia do ambiente, para que possamos prosseguir de forma mais tranquila em nossas atividades futuras.
Em nosso próximo encontro iremos configurar adequadamente a cama do leito sobre a base inserida e acrescentaremos elementos adicionais que pertencem ao novo equipamento médico presente em Consultório do Dr. Tratanildo.
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