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

arrow_back Aula 02 - Entradas do jogador e movimento

Adicionando movimento em um objeto - pt.3

Vamos falar mais dos métodos especiais dos scripts no Unity no decorrer do curso, porém é importante conhecer de imediato esses dois adicionados por padrão.

O método Start() é executado somente uma vez durante o seu jogo (no início), já o método Update() será executado repetidamente durante o seu jogo (uma vez a cada frame). Desse modo, é possível adicionar dentro do método Start() todo o código desejado para inicializar um determinado objeto (por exemplo sua posição inicial, quantidade de vida inicial de um personagem, etc.) que contém esse script. No método Update() colocamos todo o código executado durante o jogo, como a verificação acerca de o jogador ter pressionado algum comando para mudar a posição do objeto, sendo essa verificação justamente o que precisamos agora.

Assim, verificaremos inicialmente, dentro do método Update(), se o jogador deseja se movimentar no eixo horizontal. Para isso, utilizaremos o Input.GetAxis(“Horizontal”) a fim de obter um valor que representa o quanto ele deseja se mexer nesse eixo (valor de -1 a 1). Veja na Figura 10 como obter esse valor e armazenar em uma variável float.

Obtendo a intenção de movimento do jogador no eixo horizontal.

Lembre-se de não ser necessário mais de um comando para saber se o jogador deseja movimentar o objeto para a esquerda ou para a direita, já que o eixo virtual “Horizontal” retorna um valor float de -1 a 1 no qual os valores negativos indicam a esquerda e os positivos a direita. Se o jogador estiver utilizando um teclado, basta pressionar as teclas A, S ou as Setas para a direita ou esquerda a fim de o valor correto ser retornado. Se o jogador estiver utilizando um controle (joystick), ele pode utilizar o analógico do lado esquerdo para isso ou as setas digitais do controle. No caso do controle analógico, os valores representam o quanto ele moveu o analógico (se moveu metade para a esquerda, por exemplo, o valor retornado será -0.5 e se moveu todo para a esquerda será retornado -1).

Antes de mover nosso objeto vamos exibir o valor obtido no Unity para verificar se tudo está funcionando corretamente até agora. A forma mais prática de fazer isso é utilizando o Console de Debug.

Para isso digite o seguinte comando ainda dentro do Update() e logo abaixo do Input.GetAxis():

Debug.Log ("Valor horizontal: " + movimentoHorizontal.ToString ());

Seu código final do método Update() deve ficar assim:

Salve o script no MonoDevelop por meio do atalho Control+S ou do menu File->Save, volte ao Unity, pressione “Play” e veja o que acontece, como na Figura 11.

Tentativa de executar o script C# criado.

Versão 5.3 - Todos os Direitos reservados