Menu
CoddyTech

Dirija com as teclas

Parte da seção Fundamentos de Scripting no Unity do Journey de Unity da Coddy. Lição 12 de 85.

Input.GetKey(KeyCode.Space) é true em todos os quadros enquanto a tecla Espaço estiver pressionada e false caso contrário. Consulte esse método em Update() e mova o objeto apenas quando ele indicar que sim; assim, o jogador controla o objeto.

Esta caixa sobe a lift unidades por segundo enquanto a tecla Espaço estiver pressionada. Time.deltaTime mantém a velocidade por segundo, como na última lição:

public float lift = 2f;

void Update()
{
    if (Input.GetKey(KeyCode.Space))
    {
        transform.position += new Vector3(0, lift * Time.deltaTime, 0);
    }
}

Cada tecla tem um KeyCode: KeyCode.UpArrow, KeyCode.W, KeyCode.Return e assim por diante. Clique primeiro na visualização do jogo para que as teclas sejam enviadas a ela. Uma observação para o Unity 6: novos projetos usam o novo Input System, e Input.GetKey gera um erro até que Active Input Handling (Project Settings, Player) seja definido como Both.

challenge icon

Desafio

Fácil

Permita que o jogador controle o cubo com as teclas de seta.

  1. Em Update(), enquanto Input.GetKey(KeyCode.RightArrow) for verdadeiro, adicione new Vector3(speed * Time.deltaTime, 0, 0) a transform.position.
  2. Enquanto KeyCode.LeftArrow estiver pressionada, subtraia o mesmo Vector3 usando -=.

Pressione “Jogar”, clique no jogo e mantenha as teclas de seta pressionadas: o cubo desliza para a direita e para a esquerda. Em seguida, “Verificar”.

Experimente você mesmo

using UnityEngine;

public class Steering : MonoBehaviour
{
    public float speed = 4f;

    void Update()
    {
        // Seta para a direita: move para a direita. Seta para a esquerda: move para a esquerda.
    }
}

Todas as lições de Fundamentos de Scripting no Unity

Pratique por conta própria: Playground de Unity