Menu
CoddyTech

Kieruj

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 strony jej przedniej krawędzi, więc kierunek w górę ekranu to +z, Vector3.forward, a w dół — Vector3.back. Vector3.up wskazuje niebo: głowa poruszana w tym kierunku uniosłaby się nad planszę.

Skręt następuje raz po każdym naciśnięciu, dlatego odczytuj klawisze za pomocą wasPressedThisFrame. Naciśnięcie zmienia tylko direction; Step() nadal przesuwa głowę, przy następnym takcie:

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

Strzałka i odpowiadająca jej litera to dwa klawisze połączone operatorem ||. Keyboard.current ma wartość null na urządzeniu bez klawiatury, więc sprawdź ją raz na początku.

challenge icon

Wyzwanie

Łatwy

Steruj wężem za pomocą strzałek lub klawiszy WASD.

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

Naciśnij „Graj”, kliknij grę i steruj: głowa skręci przy następnym kroku. Następnie naciśnij „Sprawdź”.

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;
    }
}

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

Poćwicz samodzielnie: Edytor online Unity