Menu
CoddyTech

Steruj za pomocą klawiszy

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

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

Ta skrzynia unosi się z prędkością lift jednostek na sekundę, gdy spacja jest wciśnięta. Time.deltaTime utrzymuje 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 systemu wejścia, 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 za pomocą klawiszy strzałek.

  1. W Update(), gdy Input.GetKey(KeyCode.RightArrow) ma wartość true, dodaj new Vector3(speed * Time.deltaTime, 0, 0) do transform.position.
  2. Gdy klawisz KeyCode.LeftArrow jest wciśnięty, odejmij ten sam Vector3 za pomocą -=.

Naciśnij „Graj”, kliknij grę i przytrzymaj klawisze strzałek: sześcian przesuwa się w prawo i w lewo. Następnie naciśnij „Sprawdź”.

Spróbuj swoich sił

using UnityEngine;

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

    void Update()
    {
        // Strzałka w prawo: poruszaj się w prawo. Strzałka w lewo: poruszaj się w lewo.
    }
}

Wszystkie lekcje w sekcji Podstawy skryptów w Unity

Poćwicz samodzielnie: Edytor online Unity