Cursos / Jogos Digitais / Desenvolvimento com Motores de Jogos I / Aula

arrow_back Aula 03 - Movimentação - Scripts e Conceitos

Movimentando o Personagem

Agora que já conseguimos adicionar um script ao nosso personagem e já vimos como é simples toda a interface para lidar com scripts, podemos finalmente escrever o nosso primeiro código! O primeiro passo é definir a maneira que lidaremos com a movimentação do nosso personagem. Existem milhares de maneiras que podemos inventar para fazer um objeto se mover. Vejamos duas das maneiras mais conhecidas:

A primeira maneira é deslocar o personagem no eixo em que o movimento está acontecendo diretamente. Nesse caso, definimos uma velocidade em unidades e cada vez que o botão de movimento for pressionado, movemos o personagem naquela direção em velocidade unidades. Isso pode, no entanto, gerar uma movimentação nada fluida ao personagem e pode criar vários problemas com relação à posição do personagem na tela, fazendo com que ele entre em objetos, ou atravesse paredes. Claramente essa não é a melhor maneira, né?!

A segunda maneira é utilizando física! Podemos transformar o nosso objeto em um corpo rígido e então o empurrar por aí, baseado nos Inputs do usuário, fazendo com que o Unity e o seu motor de física façam todos os cálculos de para onde ele deve ir, onde ele deve parar e tudo mais. Parece mais seguro, concorda?! Então vamos à essa abordagem!

Para que possamos trabalhar com a física no Unity precisaremos definir que o nosso personagem é um corpo rígido. Já fizemos isso anteriormente, em nossa primeira aula, para que a bolinha pudesse cair. Naquele caso, no entanto, trabalhamos com física 3D e agora estamos em 2D. Isso é importante pois o Unity trata as duas físicas de maneira diferente e possui componentes para lidar com cada uma delas. Entraremos em mais detalhes sobre isso na próxima aula. Por agora, vamos adicionar um novo componente ao nosso player!

Como vimos na Figura 2, podemos adicionar um novo componente diretamente ao objeto no qual queremos ligar o componente através do botão AddComponent. Vamos utilizar esse botão mais uma vez em nosso player para isso. Selecione o player, cliquem em AddComponent e em seguida em Physics 2D (2D!!!) e aí em Rigidbody 2D, a primeira opção desse menu. Com isso, o nosso player agora terá um Rigidbody 2D atrelado a ele e será capaz de responder à física do mundo. Nice, bro!

Como não queremos ainda que ele caia loucamente mundo a fora vamos, por enquanto, remover a gravidade do nosso player. O nosso amigo robozinho, por hora, é capaz de flutuar! Bom para ele. Vamos alterar a propriedade GravityScale que o Rigidbody 2D possui para 0. Com isso, ele simplesmente não responderá mais à gravidade! Agora que temos como empurrar o nosso robozinho para lá e para cá, já que ele é um corpo rígido, vamos programar o nosso script para fazer justo isso!

Versão 5.3 - Todos os Direitos reservados