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.
Aufgabe
MittelGib 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).
}
}
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
1Dein erstes Skript
Hallo, UnityPlatziere den WürfelBewege dich in jedem FrameDrehe dich jede SekundeSteuere mit den TastenRückblick: Steuere den Würfel4Vektoren
Vektoren addierenRichtungenLokaler und globaler RaumDiagonale GeschwindigkeitAbstand zwischen ObjektenVector3 ist ein StructRückblick: Drohnenpilot7Projekt: Fang den Stern
Der FängerEin fallender Stern10Der Lebenszyklus eines Skripts
Awake und StartUpdate und LateUpdateOnEnable und OnDisableDie Reihenfolge im LebenszyklusRückblick: Lifecycle Logger5Transformationen und Hierarchie
Eltern und KinderSkalierungDinge ansehenAuf einen Punkt zubewegenRückblick: Umlaufender Mond8Dinge finden
Nach Namen findenTagsNach Typ findenReferenzen schlagen FindUnitys NullRückblick: Nächste Münze11Projekt: Weiche den Blöcken aus
Der LäuferFallende Blöcke6GameObjects und Komponenten
Referenzen im InspectorEine Komponente abrufenFehlende KomponentenEine Komponente hinzufügenRequireComponentEin- und AusblendenRückblick: Lichtschalter