Menu
CoddyTech

Der Fänger

Teil des Abschnitts Unity-Scripting: Grundlagen der Unity-Journey von Coddy. Lektion 50 von 85.

In diesem Kapitel entsteht ein kleines Spiel, Catch the Star, mit einer Funktion pro Lektion: Ein Stern fällt herunter, du bewegst einen Fänger darunter nach links und rechts, jeder Fang bringt Punkte und lässt den nächsten Stern schneller fallen, und drei Fehlversuche beenden das Spiel. Alles steckt in einem Skript, Catcher, auf dem Fänger. Die erste Funktion 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). Es 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. Verwende Clamp nach allen Änderungen des Frames und bevor du die Position zurückschreibst, und in keinem Frame wird das Objekt jemals außerhalb seiner Grenze angezeigt.

challenge icon

Aufgabe

Mittel

Gib dem Fänger, dem blauen Balken, Bewegung.

  1. Kopiere in Update() transform.position.x in float x und addiere oder subtrahiere dann speed * Time.deltaTime, je nachdem, welche Pfeiltaste gedrückt gehalten wird.
  2. Halte den 2 Einheiten breiten Fänger auf dem Boden (x von -5 bis 5): x = Mathf.Clamp(x, -4f, 4f);.
  3. Schreibe x zurück in transform.position und behalte y und z bei.

Drücke auf „Spielen“ und halte die Pfeiltasten gedrückt: Der Fänger stoppt an den Rändern. Klicke dann auf „Prüfen“.

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).
    }
}

Alle Lektionen in Unity-Scripting: Grundlagen

Übe selbstständig: Unity-Playground