Menu
CoddyTech

Sterowanie

Lekcja 2 z 14 w kursie Gra w Unity: Wąż 3D w Coddy.

Wąż skręca za pomocą klawiszy strzałek lub WASD. Kamera patrzy na planszę od przedniej krawędzi, więc góra ekranu wskazuje kierunek +z, Vector3.forward, a dół to Vector3.back. Vector3.up wskazuje niebo: głowa poruszana w tym kierunku uniosłaby się nad planszę.

Skręt następuje raz na naciśnięcie, więc odczytuj klawisze za pomocą wasPressedThisFrame z Input System. Naciśnięcie zmienia tylko direction. Step() nadal przesuwa głowę przy następnym tyknięciu, dzięki czemu wąż zachowuje swój rytm. Łazik, który kieruje się w prawą stronę ekranu po naciśnięciu D:

Keyboard keyboard = Keyboard.current;
if (keyboard != null && keyboard.dKey.wasPressedThisFrame)
{
    heading = Vector3.right;
}

W Input System klawiatura nie ma osi: strzałka i jej odpowiednik literowy to dwa klawisze, połączone za pomocą ||. Keyboard.current ma wartość null na urządzeniu bez klawiatury, więc odczytaj ją raz na początku i sprawdź.

challenge icon

Wyzwanie

Łatwy
  1. Dodaj using UnityEngine.InputSystem; do Snake.
  2. Na początku Update() odczytaj Keyboard.current. Naciśnięcie strzałki w górę lub W ustawia direction na Vector3.forward; strzałki w dół lub S — na Vector3.back; strzałki w lewo lub A — na Vector3.left; strzałki w prawo lub D — na Vector3.right.
  3. Pozostaw Step() bez zmian: głowa skręci przy następnym takcie.

Naciśnij Play, kliknij grę i steruj, a następnie naciśnij Check.

Spróbuj swoich sił

using UnityEngine;

public class Snake : MonoBehaviour
{
    public float tick = 0.15f;   // sekundy między dwoma krokami
    private float timer;
    private Vector3 direction = Vector3.right;

    void Update()
    {
        timer += Time.deltaTime;
        if (timer >= tick)
        {
            timer -= tick;
            Step();
        }
    }

    void Step()
    {
        transform.position += direction;
    }
}
quiz iconSprawdź się

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

Wszystkie lekcje w sekcji Gra w Unity: Wąż 3D