Inputs de Usuário :: GameDev receitas Unity3D

Inputs e eventos, são elementos comuns em desenvolvimento de software como um todo. Afinal todo, ou quase todo, software recebe uma ordem de execução, através de um clique, ou de um comando de teclado, e essa ordem vinda de um usuário, chamamos popularmente, de Input de usuário.
Eventos são, em geral, comandos trocados entre elementos de um software. No caso de um jogo, podemos imaginar a seguinte situação: Um personagem está andando por um castelo, onde há um “gatilho” de uma armadilha. Quando o personagem, passa pelo gatilho, o gatilho avisa a armadilha para disparar as flechas que matarão o personagem.
Nessa pequena descrição, podemos dizer que o gatilho, enviou uma mensagem para a armadilha disparar. Essa mesagem é o que chamamos de eventos.

Ambos, Inputs de usuário, e eventos entre objetos, possuem um papel primordial para a construção de um jogo.

Input de Usuário ::
Crie um novo script Javascript no painel “Project”, chamado BasicInputHandler, e acoloque o seguinte código:
[code lang=”Javascript”]
function Update () {
//Move o objeto pelo eixo Z
if(Input.GetAxis(“Vertical”) > 0){
transform.Translate(Vector3.forward * Time.deltaTime);
}
else if(Input.GetAxis(“Vertical”) < 0){
transform.Translate(- Vector3.forward * Time.deltaTime);
}

//Move o objeto pelo eixo X
if(Input.GetKey(“d”)){
transform.Translate(Vector3.right * Time.deltaTime);
}
else if(Input.GetKey(“a”)){
transform.Translate(- Vector3.right * Time.deltaTime);
}
}
[/code]
Adicione um cubo à sua cena, e arraste esse script para esse cubo.

Esse script está checando o Input de usuário de duas formas, a primeira pelo eixo “Vertical” do objeto Input, e outra pelas teclas ‘d’ e ‘a’.

Veja o exemplo aqui.

Opção de Eixos.
No Unity3D, há esse objeto global chamado Input, que captura as entradas de usuário, e às torna acessíveis para outros objetos do jogo. Esse eixo “Vertical”, que o objeto Input está utilizando, é previamente configurado, para ser ativado pelas teclas W,S, seta-para-cima e seta-para-baixo: As teclas W e Seta-para-cima, fazem com que o eixo “Vertical” seja positivo; As teclas S e Seta-para-baixo, fazem que o eixo seja negativo.
ISSO É UM CONFIGURAÇÃO QUE PODE SER MODIFICADA pelo desenvolvedor. Se você preferir que outras teclas acionem o eixo Vertical, entre no menu EDIT >> Project Settings >> Input. O painel Inspector irá exibir os eixos previamente configurados no Input. Você pode modificar as configurações de cada um deles, criar e excluir os eixos (basta modificar a propriedade Size, se você aumentar terá mais eixos disponíveis, se reduzir, eixos serão deletados).

Opção de Teclas.
A outra opção de utilização do Input, é pela função GetKey. O objeto Input captura quando as teclas são pressionadas, e essa informação fica disponível para a utilização.

Ambas as formas de captura do Input são válidas. A diferença entre elas é um detalhe, que não é muito claro de início, mas que vou descrever abaixo:
No objeto Input, do Unity3D, quando uma tecla que está ligada à algum eixo, é pressionada (digamos a tecla W), o eixo em questão começa a “crescer”, seu tamanho inicial que é zero, começa a aumentar; E quando a tecla é solta, o eixo começa a diminuir, seu tamanho diminui até chegar a zero.
Imagine essa situação no nosso cubo:
Assim que o usuário pressiona, digamos a tecla W, o eixo “Vertical” começa a crescer em comprimento, e o Cubo então, começa a se deslocar, afinal nosso código desloca o objeto quando o tamanho do eixo for diferente de zero. Mas assim que o usuário solta a tecla que ativa o eixo, o eixo começa a diminuir de tamanho lentamente, o que faz com que o nosso objeto continue se movendo, e interrompa seu deslocamento, apenas quando o eixo chegar ao valor zero.

Com o código acima, você perceberá, que há uma diferença entre as animações do movimento do cubo pelo eixo X e Z. Qual é o certo de ser usado? Depende de você escolher!

 

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *