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

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

Utilizando o Input no Unity

Receber e utilizar corretamente os inputs do usuário é uma funcionalidade imprescindível para qualquer jogo de sucesso desenvolvido visando qualquer plataforma. Para garantir essa estabilidade e funcionalidade o Unity tem uma classe inteira dedicada a tal feito. A classe Input, parte da classe UnityEngine, foi criada inteiramente para lidar com o input e dar ao desenvolvedor diversas facilidades ao cumprir tal tarefa.

O Unity, através dessa classe, suporta todos os tipos de input convencionais utilizados em jogos, tais como teclado, mouse e controle (gamepad). Além disso, já é nativo ao Unity receber entradas de touchscreen (com suporte a multi-touch) e também acelerômetros dos dispositivos móveis. Essa funcionalidade é uma facilidade tremenda para os desenvolvedores que querem trabalhar com essas plataformas, que são verdadeiras minas de ouro atualmente e que permitem trabalhar com menores equipes e atingir excelentes resultados no desenvolvimento, como vimos nas aulas de Introdução aos Jogos Digitais.


Utilização de Inputs Tradicionais no Unity

O Unity, ao trabalhar com Inputs tradicionais, já traz diversas facilidades ao usuário. É possível, por exemplo, configurar os comandos que o usuário quer utilizar para cada um dos inputs necessários ao controle do jogo ao iniciá-lo no PC. Como veremos adiante, basta definir o que nós queremos dar de liberdade ao usuário em relação ao recebimento de entradas e aí, ao executar o jogo após ser compilado em versão final, o usuário poderá simplesmente escolher as teclas que quer utilizar para cumprir cada uma das funcionalidades. Não quer pular no B? Altere uma configuração e agora você pula na barra de espaço! Sem nenhuma necessidade de código extra por parte do desenvolvedor. Muito bom, não?!

É possível utilizar qualquer um dos dispositivos de entrada tradicional no Unity sem que haja nenhuma necessidade de configuração extra, apenas utilizando a classe Input. Podemos, inclusive, utilizar interfaces diferentes misturadas, da maneira que quisermos, para o nosso jogo. Sente falta do clássico multiplayer em uma máquina só que os consoles de antigamente traziam? Não tem problema! Isso está a alguns comandos de distância no Unity. Reviva essa experiência única! E me mande o link do jogo pois terei interesse em adquirir! :D

Para que esses inputs tradicionais possam funcionar adequadamente e de maneira fácil, o Unity utiliza o conceito de eixos virtuais. Esses eixos nada mais são do que nomes predefinidos para que possamos acessar os valores de algumas teclas clássicas, utilizadas em jogos de computador de diversos estilos. Os eixos padrão que o Unity traz são:

  • Horizontal e Vertical, que representam a movimentação do usuário e estão por padrão mapeados para as setinhas do teclado ou para WASD.
  • Mouse X e Mouse Y, que indicam a movimentação do mouse em relação a um desses eixos.
  • Fire1, Fire2 e Fire3, que podem ser utilizados para disparar algum evento como tiro, pulo ou qualquer outra coisa e estão mapeados, na sequência, para Control, Alt e Command.

Com todos esses elementos já é possível desenvolver muitos controladores diferentes para os nossos jogos. Se isso não for o bastante, como usualmente não é, o Unity também permite que você adicione eixos customizados, dentro das opções de seu programa. Isso é importante para garantir ao programador a facilidade de alcançar os controles que necessita para o seu jogo independente do quão diferente dos padrões ele for. Para acessar o menu de adição de novos eixos, utilizamos a opção Edit -> Project Settings -> Input. Isso abrirá uma nova aba em nosso Inspector indicando as possibilidades que temos para modificar os eixos. A Figura 1 nos mostra como abrir o menu e também a criação de um novo eixo, representando os controles de vôo de um personagem, por exemplo.

Configurações de Input e Criação de um novo Eixo.

Perceba que para a criação de um novo eixo, diversa propriedade para esse eixo tem que ser alteradas. Além disso, no começo das configurações, há uma propriedade chamada Size. Ela indica quantos eixos serão criados para o seu projeto. Caso não haja espaços para novos eixos, basta aumentar essa variável e então novas posições surgirão para que você possa utilizar.

Versão 5.3 - Todos os Direitos reservados