Quando se trata de entrada do usuário, na unity temos vários métodos que permitem isso, nesse post será explicado sobre as teclas.
Quando se quer saber se alguma tecla foi apertada, pode-se usar Input.GetKey, Input.GetKeyDown e Input.GetKeyUp. Esse três métodos retornam valores booleanos (true ou false), caso a tecla passada como parâmetro atenda a condição de cada método, por exemplo
Input.GetKey(tecla): retorna true se a tecla estiver pressionada.
Input.GetKeyDown(tecla): retorna true se a tecla foi pressionada e já altera seu valor, enquanto a tecla nao for solta e pressionada novamente, não volta a ser true.
Input.GetKeyUp(tecla): retorna true quando a tecla é solta, o oposto do Input.GetKeyDown.
O exemplo abaixo vai mudar a cor do nosso gameObject dependendo do estado da tecla.
private var cor:Material;
function Start () {
cor = GetComponent.().material;
}
function Update () {
var teclaE = Input.GetKeyUp(KeyCode.E);
if(teclaE){
cor.color = Color.red;
}else{
cor.color = Color.white;
}
}
Troque o GetKeyUp, por GetKeyDown e GetKey e observe a diferença no comportamento do nosso objeto durante a execução do jogo.
No exemplo foi usada a tecla E, como pode ser visto no pedaço do código KeyCode.E, pode ser usada várias teclas e até combinação de teclas, uma lista com o código de cada tecla pode ser encontrada no próprio site da unity, nesse link
Para a combinação de teclas, você pode alterar o código acima para:
private var cor:Material;
function Start () {
cor = GetComponent.().material;
}
function Update () {
var teclaE = Input.GetKeyDown(KeyCode.E);
var teclaControl = Input.GetKeyDown(KeyCode.LeftControl);
if(teclaE && teclaControl){
cor.color = Color.red;
}else{
cor.color = Color.white;
}
}
Desse modo, o gameObject vai mudar de cor somente se a tecla E AND a tecla Control da esquerda forem pressionadas.
Pronto!! Usar o GetKeyDown, GetKeyUp ou GetKey vai da necessidade do seu código. Boa Sorte.
Comentários
Postar um comentário