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.
Aufgabe
MittelGib dem Fänger, dem blauen Balken, Bewegung.
- Kopiere in
Update()transform.position.xinfloat xund addiere oder subtrahiere dannspeed * Time.deltaTime, je nachdem, welche Pfeiltaste gedrückt gehalten wird. - Halte den 2 Einheiten breiten Fänger auf dem Boden (x von -5 bis 5):
x = Mathf.Clamp(x, -4f, 4f);. - Schreibe
xzurück intransform.positionund 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
1C#-Grundlagen in Unity
Hallo, UnityVariablenDezimalzahlen brauchen ein fText in der KonsoleVariablen, die sich etwas merkenIf und ElseZahlen vergleichenRückblick: Münzsammler7Schleifen und Methoden
Wiederholen mit forSchleifen in SchleifenEine Methode schreibenMethoden mit RückgabewertArraysRückblick: Treppe10Dinge finden
Nach Namen suchenTagsNach Typ suchenReferenzen schlagen SuchenUnitys NullRückblick: nächste Münze13Projekt: Weiche den Blöcken aus
Der LäuferBlöcke vom Himmel2Bring es in Bewegung
Platziere den WürfelBewege ihn in jedem FrameDrehe ihn jede SekundeSteuere mit den TastenRückblick: Fahre den Würfel5Vektoren
Vektoren addierenRichtungenLokaler und globaler RaumDiagonale GeschwindigkeitAbstand zwischen ObjektenVector3 ist eine StrukturRückblick: Drohnenpilot8GameObjects und Komponenten
Referenzen im InspectorEine Komponente abrufenFehlende KomponentenEine Komponente hinzufügenRequireComponentEin- und AusblendenRückblick: Lichtschalter11Prefabs und Erzeugen von Instanzen
Prefabs und InstantiateNach Zeitintervall erzeugenIn einem Raster erzeugenListen von ObjektenDas Neueste zurücknehmenZerstörenZufälliges ErzeugenRückblick: Feuerwerk14Abschließende Herausforderungen
MünzmagnetDie Straße überquerenStraßenverkehrTurmbauerLanden oder verfehlen3Der Inspector
Inspector-FelderSerializeFieldFließkommazahlen und MathfInspector-AttributeRückblick: Aufzug6Transformationen und Hierarchie
Eltern und KinderHisse die FlaggeSkalierungDinge anschauenAuf einen Punkt zubewegenRückblick: Mond in Umlaufbahn9Projekt: Fang den Stern
Der FängerEin fallender Stern12Der Lebenszyklus eines Skripts
Awake und StartUpdate und LateUpdateOnEnable und OnDisableDie Reihenfolge im LebenszyklusRückblick: Lifecycle LoggerÜbe selbstständig: Unity-Playground