Menu
CoddyTech

Steruj za pomocą klawiszy

Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 5 z 67.

Input.GetKey(KeyCode.Space) ma wartość true w każdej klatce, gdy spacja jest wciśnięta, a w przeciwnym razie false. Sprawdzaj to w Update() i poruszaj obiektem tylko wtedy, gdy wynikiem jest tak — w ten sposób gracz steruje obiektem.

Ta skrzynia unosi się z prędkością lift jednostek na sekundę, gdy spacja jest wciśnięta. Time.deltaTime zapewnia stałą prędkość na sekundę, tak jak w poprzedniej lekcji:

public float lift = 2f;

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

Każdy klawisz ma przypisaną wartość KeyCode: KeyCode.UpArrow, KeyCode.W, KeyCode.Return i tak dalej. Najpierw kliknij widok gry, aby klawisze były do niego przekazywane. Uwaga dotycząca Unity 6: nowe projekty korzystają z nowego Input System, a Input.GetKey powoduje tam błąd, dopóki opcja Active Input Handling (Project Settings, Player) nie zostanie ustawiona na Both.

challenge icon

Wyzwanie

Łatwy

Pozwól graczowi sterować sześcianem: gdy przytrzymuje strzałkę w prawo, sześcian porusza się w prawo (wzdłuż osi +x) z prędkością speed jednostek na sekundę, a gdy przytrzymuje strzałkę w lewo, porusza się w lewo z tą samą prędkością. Gdy żaden klawisz nie jest wciśnięty, pozostaje w miejscu.

Naciśnij Play, kliknij grę i wypróbuj strzałki, a następnie naciśnij Check.

Spróbuj swoich sił

using UnityEngine;

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

    void Update()
    {
        // Strzałka w prawo: ruch w prawo. Strzałka w lewo: ruch w lewo.
    }
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy skryptów w Unity