Pular para o conteúdo principal

Input GetKey

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

Postagens mais visitadas deste blog

Comera Follow com Rotate

Ainda pensando no movimento da câmera, outro recurso muito utilizado é a rotação dela em torno do player. Observe o código a seguir. var player:Transform; var turnSpeed:float = 4.0f; var smooth:boolean = false; private var offset:Vector3; private var velocidade:Vector3; function Start () { offset = transform.position - player.position; Cursor.lockState = CursorLockMode.Locked; } function LateUpdate(){ offset = Quaternion.AngleAxis (Input.GetAxis("Mouse X") * turnSpeed, Vector3.up) * offset; if(smooth){ var targetPosition : Vector3 = player.position + offset; transform.position = Vector3.SmoothDamp(transform.position, targetPosition, velocidade, 0.3f); }else{ transform.position = player.position + offset; } transform.LookAt(player.position); } Nesse código tem-se agora, o player ou target do tipo Transform, atente-se a isso, dessa forma temos acesso apenas à propriedade Transform do player, existe também a variável turnSpeed que será a velocidade de rotaçã...

GUI

Nesse artigo será abordado como trabalhar com alguns elementos da GUI. Os elementos abordados serão, TextField, Button, Slider e Box. Quando for trabalhar com elementos da UI (User Interface) deve-se primeiro fazer o import necessário no início do arquivo de script  import UnityEngine.UI;  A função OnGUI da própria Unity é a responsável por exibir e interagir com os elementos criados via código.  function OnGUI(){  } Botão Para criar botões, o código será o seguinte if ( GUI.Button( Rect( 10, 70, 100, 30 ), "Input"  ) ){         Debug.Log(stringToEdit);     } Essa é uma das maneiras de criar um botão, pois o método GUI.Button tem várias assinaturas. Da maneira utilizada o primeiro parâmetro está relacionado à posição do botão na interface, que s...