Menu
CoddyTech

Der Fänger

Teil des Abschnitts Grundlagen des Scripting in Unity der Unity-Journey von Coddy. Lektion 36 von 67.

In diesem Kapitel entsteht ein kleines Spiel, Catch the Star, mit einem Feature pro Lektion: Ein Stern fällt herunter, du bewegst einen Fänger darunter nach links und rechts, jeder Fang gibt Punkte und lässt den nächsten Stern schneller fallen, und drei Fehlversuche beenden das Spiel. Das Ganze steckt in einem Skript, Catcher, auf dem Fänger. Das erste Feature ist die Bewegung: Der Fänger bewegt sich mit den Pfeiltasten und verlässt niemals den Boden.

Eine Zahl innerhalb von Grenzen zu halten, ist die Aufgabe von Mathf.Clamp(value, min, max). Die Funktion gibt min zurück, wenn der Wert kleiner als min ist, max, wenn er größer als max ist, und andernfalls den Wert selbst. Diese Kamera folgt dem Spieler einen Turm hinauf, aber ihre Höhe bleibt zwischen 2 und 12:

[SerializeField] private Transform player;

void Update()
{
    float y = Mathf.Clamp(player.position.y, 2f, 12f);
    transform.position = new Vector3(transform.position.x, y, transform.position.z);
}

Clamp gibt eine neue Zahl zurück und ändert für sich genommen nichts, also weise das Ergebnis zu. Wende Clamp nach allen Änderungen des Frames und bevor du die Position zurückschreibst an, damit das Objekt in keinem Frame seine Grenze überschreitet.

challenge icon

Aufgabe

Mittel

Gib dem Fänger (dem blauen Balken) Bewegung. Solange die rechte Pfeiltaste gedrückt wird, bewegt er sich nach rechts (entlang +x), solange die linke Pfeiltaste gedrückt wird, nach links, jeweils mit speed Einheiten pro Sekunde. Sein y und z ändern sich nie.

Der Boden reicht von x = -5 bis x = 5 und der Fänger ist 2 Einheiten breit. Begrenze sein x so, dass der gesamte Fänger immer auf dem Boden bleibt.

Drücke Play, klicke ins Spiel und probiere die Pfeiltasten aus, dann Check.

Probier es selbst

using UnityEngine;

public class Catcher : MonoBehaviour
{
    [SerializeField] private float speed = 6f;

    void Update()
    {
        // Pfeiltasten: Bewege dich entlang der x-Achse mit speed Einheiten pro Sekunde.
        // Halte den gesamten Fänger auf dem Boden (x von -5 bis 5, der Fänger ist 2 Einheiten breit).
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen des Scripting in Unity