Steuern
Lektion 2 von 14 im Kurs Unity-Spiel: 3D-Snake von Coddy.
Die Schlange biegt mit den Pfeiltasten oder WASD ab. Die Kamera blickt von der vorderen Kante aus auf das Spielfeld, sodass oben auf dem Bildschirm +z, Vector3.forward, entspricht und unten Vector3.back. Vector3.up zeigt zum Himmel: Ein Kopf, der sich in diese Richtung bewegt, würde sich vom Spielfeld abheben.
Pro Tastendruck erfolgt eine Richtungsänderung. Lies die Tasten deshalb mit wasPressedThisFrame aus. Der Tastendruck ändert nur direction; Step() bewegt den Kopf weiterhin beim nächsten Tick:
Keyboard keyboard = Keyboard.current;
if (keyboard != null && keyboard.dKey.wasPressedThisFrame)
{
direction = Vector3.right;
}Eine Pfeiltaste und ihr Buchstabe sind zwei Tasten, die mit || verknüpft werden. Keyboard.current ist auf einem Gerät ohne Tastatur null, prüfe es also einmal am Anfang.
Aufgabe
EinfachSteuere die Schlange mit den Pfeiltasten oder WASD.
- Füge
using UnityEngine.InputSystem;zuSnakehinzu. - Lies am Anfang von
Update()Keyboard.currentaus: Hoch oder W setztdirection = Vector3.forward, runter oder SVector3.back, links oder AVector3.left, rechts oder DVector3.right. - Lass
Step()unverändert: Der Kopf dreht sich beim nächsten Schritt.
Drücke „Spielen“, klicke ins Spiel und steuere die Schlange: Der Kopf dreht sich beim nächsten Schritt. Drücke dann „Prüfen“.
Probier es selbst
using UnityEngine;
public class Snake : MonoBehaviour
{
public float tick = 0.15f; // Sekunden zwischen zwei Schritten
private float timer;
private Vector3 direction = Vector3.right;
void Update()
{
timer += Time.deltaTime;
if (timer >= tick)
{
timer -= tick;
Step();
}
}
void Step()
{
transform.position += direction;
}
}
Alle Lektionen in Unity-Spiel: 3D-Snake
Übe selbstständig: Unity-Playground