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ź.
Wyzwanie
Łatwy- Dodaj
using UnityEngine.InputSystem;doSnake. - Na początku
Update()odczytajKeyboard.current. Naciśnięcie strzałki w górę lub W ustawiadirectionnaVector3.forward; strzałki w dół lub S — naVector3.back; strzałki w lewo lub A — naVector3.left; strzałki w prawo lub D — naVector3.right. - 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;
}
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.