Menu
CoddyTech

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.

challenge icon

Aufgabe

Einfach

Steuere die Schlange mit den Pfeiltasten oder WASD.

  1. Füge using UnityEngine.InputSystem; zu Snake hinzu.
  2. Lies am Anfang von Update() Keyboard.current aus: Hoch oder W setzt direction = Vector3.forward, runter oder S Vector3.back, links oder A Vector3.left, rechts oder D Vector3.right.
  3. 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