Você está na página 1de 18

 

PENAS DO ARAUTO e GRUPO AMUDI - Felipe Kenzo Shiraishi 

INTRODUÇÃO À UNITY 5 
27 Novembro, 2017 

Entendendo Espaço, Tempo e 


Interação na Unity 5 

O que eu vou aprender neste artigo? 


Este artigo objetiva ensinar princípios básicos de como manipular e ter acesso às funcionalidades de 
espaço​, ​tempo​, ​movimento​ e ​interação​ com a U
​ nity 5​. Isso envolve aprender a desenvolver ​scripts 
em C#​ e gerenciamento de algumas ​funções da Engine​. 

Com o que for aprendido neste artigo já é possível prototipar ideias simples de jogos. No entanto, 
caso se queira aprofundar mais em outras ferramentas, um outro material é recomendado. 


 
 

INTRODUÇÃO À UNITY 5 - EKOS 


 

ESPAÇO 

Todo o espaço utilizado na Unity se trata de um espaço 3D. Inclusive nos casos em que se está 
desenvolvendo um jogo 2D, se dispõe o seu conteúdo em um espaço 3D. Neste espaço, existe uma 
origem de um sistema de eixos coordenados definidos por x, y e z com as setas Vermelhas, Verdes e 
Azuis respectivamente conforme a figura a seguir: 


 
 

INTRODUÇÃO À UNITY 5 - EKOS 


 

Nesta cena, há um ​objeto de jogo​ sendo selecionado, o plano. Um objeto selecionado tem suas bordas 
destacadas de laranja e possui ferramentas de manipulação no espaço. O local em que os objetos são 
posicionados é chamada ​Cena.​  

Essas ferramentas de manipulação de objetos são ferramentas que alteram as propriedades 


do componente ​Transform​ do objeto, que são as listadas a seguir: P
​ osição​, ​Rotação​ e ​Escala​. 

POSIÇÃO 

Na área indicada em vermelho estão as 3 ferramentas de manipulação do Transform. A 


indicada por 4 setas em cruz é a de ajuste de posição. Um objeto selecionado com essa ferramenta de 
transform pode ter sua posição transladada pela cena ao se puxar as suas setas. Isso pode ser 
manipulado numericamente no menu à direita. 


 
 

INTRODUÇÃO À UNITY 5 - EKOS 


 

Cada uma dessas sub abas da aba inspetor dizem respeito aos componentes do objeto. Neste 
caso, o Cubo selecionado possui um componente Transform que permite a ele ter uma materialidade 
no espaço, um componente Cube(Mesh Filter) que confere a sua geometria, a sua forma no mundo e 
assim por diante. Você pode excluir ou adicionar componentes em objetos de jogo. 

ROTAÇÃO 
A ferramenta de rotação do transform é indicada pelas setas circulares, com ela é possível 
girar o objeto pela cena. O seu ajuste numérico pode também ser feito na aba do componente 
Transform do Objeto. 


 
 

INTRODUÇÃO À UNITY 5 - EKOS 


 

ESCALA 
A ferramenta escala aumenta as dimensões do objeto. Por padrão, suas dimensões originais 
são (1;1;1). Caso se queira dobrar um objeto de tamanho, muda-se o seu valor para (2;2;2). Caso só se 
queira dobrar a dimensão X do objeto, muda-se o seu valor para (2;1;1). 

MANIPULANDO O TRANSFORM DE OBJETOS VIA SCRIPT 


Para acessar esses valores do componente Transform de um objeto via script, basta adicionar 
um componente ao seu objeto do tipo script conforme eu faço a seguir: 

Com o botão direito sobre a minha aba de conteúdos eu seleciono a opção Create -> C# Script. 

Isso vai gerar um arquivo de texto que podemos editar. A unity já vem com uma plataforma de 
edição de scripts, a monoDevelop. Caso ela não apareça de início, você pode ajustar nas preferências 
da Unity para que esse seja o editor de código padrão seu. 

Ao abrir esse Script, verá que ele já está preenchido com algum código como esse: 


 
 

INTRODUÇÃO À UNITY 5 - EKOS 


 


 
 

INTRODUÇÃO À UNITY 5 - EKOS 


 

Vamos preencher a função ​Start()​, ela é acionada apenas uma vez, quando o objeto 
aparece na cena. Vamos escrever um pedaço de código que faça o nosso cubo ocupar a posição ( 3 ; 
2.5 ; 0 ) da cena: 

Na função ​Start()​ estou criando um objeto do tipo V ​ ector3​ que é um compartimento que 
aceita 3 coordenadas: x, y e z. Defini os seus valores como 3, 2.5 e 0 respectivamente. 

Então, posso manipular o seu componente ​transform​ ao especificar após essa palavra 
chave que queremos alterar o seu registro de posição com ​position​. 

Finalmente, atualizo o valor da posição de meu transform atribuindo o valor do vetor ​pos​. 

Agora, para associar esse script ao nosso cubo, basta clicar no botão add component do nosso 
cubo e escolher a opção script e escolher o Script que nós criamos. 


 
 

INTRODUÇÃO À UNITY 5 - EKOS 


 

Então, para testar e verificar se tudo está acontecendo conforme esperamos, é só clicar no 
botão de executa indicado na figura: 


 
 

INTRODUÇÃO À UNITY 5 - EKOS 


 

Antes 

Depois 

Com esse mesmo pedaço de código você pode usar outras funções descritas na 
documentação da Unity sobre a API de RigidBody, basta passar os argumentos corretos e você pode 
ver o resultado de cada uma delas: 

https://docs.unity3d.com/ScriptReference/Rigidbody.html 


 
 

INTRODUÇÃO À UNITY 5 - EKOS 


 

TEMPO 

O tempo nas engines de jogos é medido em função do tempo decorrido entre um frame e 
outro. Essa é a menor unidade de tempo que você pode ter acesso na Unity. Para descobrir qual foi o 
tempo decorrido do último frame para o frame atual, você pode acessar a variável ​deltaTime​ ​da 
classe ​Time​. 

Vamos criar um script que imprima no nosso log console esse tempo em tempo real, para isso, 
escreveremos o comando dentro da função ​Update()​.​ A unity chama a função Update toda vez que 
o jogo troca de frame. Portanto, a maioria das funções que você for implementar no jogo habitarão a 
função ​Update()​ do seu script. 

10 
 
 

INTRODUÇÃO À UNITY 5 - EKOS 


 

Resultado: 

Arredondando, entre um frame e outro, leva-se 0.016 segundos para passar um frame. Logo, 
fazendo uma regra de três, pode-se perceber que meu computador está rodando esse protótipo a 62.5 
frames por segundo. 

Assim sendo, você pode se utilizar desse valor para manejar tempo e físicas que dependem do 
tempo. Por exemplo, se você quiser que haja um tempo limite para o jogador terminar uma fase, você 
pode criar um código semelhante ao a seguir: 

11 
 
 

INTRODUÇÃO À UNITY 5 - EKOS 


 

Neste caso, a cada frame a função ​Update()​ soma o valor de ​deltaTime​ à variável 
tempoDecorrido​ o seu valor. Sempre que esse tempo decorrido superar ou foi igual à marca de 1 
segundo, ele atualiza o ​tempoDecorrido​ de volta para 0 e decrementa em uma unidade a variável 
tempo que é inicializado com 300 segundos. Quando tempo for igual a 0, é impressa a mensagem para 
o jogador que ele perdeu. 

12 
 
 

INTRODUÇÃO À UNITY 5 - EKOS 


 

MOVIMENTO 
 

VELOCIDADE 
Um vetor velocidade não é nada mais e nada menos do que um ​Vector3​ que incrementa o 
vetor posição do objeto ao ser multiplicado pelo tempo decorrido desde o último frame, isto é, o 
Time.deltaTime​. 

Vamos fazer o nosso cubo viajar em uma direção com uma velocidade constante com esse 
script sendo preenchido em sua função ​Update()​: 

13 
 
 

INTRODUÇÃO À UNITY 5 - EKOS 


 

Ao tornar a variável ​velocidade​ pública permite que a editemos dinamicamente no espaço 


de trabalho. O vetor ​direcao​ aponta a direção para onde o nosso cubo ira viajar. 

Dentro de nossa função ​Update()​ pegamos uma referência ao componente ​transform 


para podermos alterar a sua posição. Queremos que a nova posição de nosso cubo seja sempre o 
vetor posição atual dele definido pelo ​transform.position​ incrementado pelo vetor ​direcao 
multiplicado pela ​velocidade​ e pelo tempo decorrido desde o último frame. Não lembra aquela 
fórmula de física do ensino médio? 

S = So + v * t 

Olha só, serviu pra alguma coisa física, né? 

14 
 
 

INTRODUÇÃO À UNITY 5 - EKOS 


 

Antes de testar, verifique que você setou o valor da velocidade o seu cubo para um valor 
diferente de 0. Assim, veja ele andando em direção à x. 

ACELERAÇÃO 
Para tratarmos a aceleração de um corpo, vamos nos utilizar de forças. Mais difícil é de se tirar 
um corpo de repouso quanto maior a sua massa. A componente massa de um objeto pode ser 
alterada na aba componente de Rigidbody. O script para aplicar uma força ao nosso objeto será muito 
parecida com a do nosso script de velocidade, veja: 

15 
 
 

INTRODUÇÃO À UNITY 5 - EKOS 


 

Caso o seu objeto não aparente andar, não se preocupe, provavelmente a força não está 
sendo grande o suficiente a ponto de tirá-lo da inércia por conta da sua massa ou por conta da força 
de atrito da superfície em que ele está. 

A ideia é que você pode modelar diferentes tipos de movimentos apenas utilizando a física 
que você aprendeu no ensino médio. Seja criativo! 

16 
 
 

INTRODUÇÃO À UNITY 5 - EKOS 


 

INTERAÇÃO 

LENDO ENTRADA DE DISPOSITIVOS 


Para se executar um pedaço de código em caso de evento de algum dispositivo do usuário, 
isto é, seu teclado, seu mouse, a tela de seu tablet ou de um controle de video game, basta adicionar 
uma condicional na função update: 

17 
 
 

INTRODUÇÃO À UNITY 5 - EKOS 


 

Note que uma força será aplicada no nosso cubo se e somente se nós mantivermos a barra de 
espaço pressionada. Para ter acesso à qualquer entrada, basta acessar a classe ​Input​, chamar a 
função ​GetKey​ e botar em seu argumento o nome da tecla pertencente à classe ​KeyCode​. 

CONCLUSÃO 
Pronto, daqui em diante você sabe seguir com suas próprias pernas. Aprimore os seus 
conhecimentos lendo a documentação de outras API’s da Unity, vendo vídeos no youtube e 
prototipando suas ideias de jogos. Em pouco tempo você poderá fazer milagres com a unity. 

Bons estudos ;) ! 

18 
 

Você também pode gostar