Kursinhalt
Unity für Anfänger
Unity für Anfänger
Zeit.DeltaTime
In Spielen werden Aktionen und Bewegungen oft basierend auf Frames berechnet. Jeder Frame stellt einen einzelnen Schnappschuss der Zeit dar, in dem das Spiel aktualisiert, was passiert - Objekte bewegen, Kollisionen erkennen usw.
Konsistenz über Geräte hinweg
Spiele müssen flüssig auf verschiedenen Geräten mit unterschiedlicher Rechenleistung laufen. Wenn Sie ein Objekt um einen festen Betrag pro Frame bewegen würden, würde es auf einem schnelleren Gerät schneller und auf einem langsameren Gerät langsamer erscheinen. Diese Inkonsistenz kann zu einem unzusammenhängenden Spielerlebnis führen.
Time.deltaTime zur Rettung
Stellen Sie sich vor, Sie spielen ein Spiel auf zwei verschiedenen Geräten: eines ist super schnell und das andere etwas langsamer. Sie möchten, dass sich das Spiel auf beiden gleich anfühlt, richtig? Genau hier kommt Time.deltaTime
ins Spiel. Es hilft sicherzustellen, dass Bewegungen im Spiel gleich aussehen, egal wie schnell oder langsam das Gerät ist.
Time.deltaTime
sagt Ihnen, wie lange es gedauert hat, das letzte Bild auf dem Bildschirm zu zeichnen (ein Frame). Mit diesen Informationen können Sie anpassen, wie viel sich Dinge im Spiel bewegen, sodass sie auf jedem Gerät mit der gleichen Geschwindigkeit bewegen.
Beispiel
Stellen Sie sich vor, Sie möchten eine Figur in Ihrem Spiel mit einer Geschwindigkeit von 5 Einheiten pro Sekunde bewegen. Anstatt sie einfach um 5 Einheiten pro Frame zu bewegen, was je nach Gerät zu schnell oder zu langsam sein könnte, verwenden Sie Time.deltaTime
, um die Bewegung anzupassen.
So funktioniert es: Wenn das letzte Frame 0.02
Sekunden dauerte, um auf dem Bildschirm angezeigt zu werden, multiplizieren Sie die Geschwindigkeit (5 Einheiten) mit Time.deltaTime
(0.02 Sekunden). Also, 5 * 0.02 = 0.1
. Das bedeutet, dass Sie die Figur für dieses Frame um 0.1 Einheiten bewegen. Auf diese Weise bewegt sich Ihre Figur unabhängig davon, wie schnell oder langsam das Gerät ist, mit der richtigen Geschwindigkeit.
Verständnis des Codebeispiels
Lassen Sie uns den Code-Schnipsel aufschlüsseln, um zu sehen, wie Time.deltaTime
in einem echten Spielszenario verwendet wird:
-
[SerializeField] float speed;
: Diese Zeile deklariert eine Variable namensspeed
, die Sie im Unity-Editor anpassen können. Sie steuert, wie schnell sich Ihre Figur bewegt; -
private void Update()
: Dies ist eine spezielle Methode in Unity, die jedes Frame ausgeführt wird. Hier platzieren Sie Code, der ständig überprüft oder aktualisiert werden muss, wie das Bewegen einer Figur; -
transform.Translate(Vector2.up * speed * Time.deltaTime);
: Diese Zeile bewegt Ihre Figur nach oben. Diespeed
wird mitTime.deltaTime
multipliziert, um sicherzustellen, dass die Bewegung reibungslos und konsistent ist, egal wie schnell das Spiel läuft. Auf diese Weise bewegt sich Ihre Figur mit der gleichen Geschwindigkeit auf allen Geräten.
Sanfte Animationen
Durch die Verwendung von Time.deltaTime
erscheinen Animationen und Bewegungen
sanft und konsistent über verschiedene Geräte und Bildraten hinweg.
Physik und Time.deltaTime
Dieses Konzept ist auch in physikalischen Berechnungen entscheidend. Bei der Arbeit mit Physiksimulationen ist es wichtig, die zwischen den Frames vergangene Zeit zu berücksichtigen, um ein realistisches Verhalten von Objekten wie Schwerkraft, Kollisionen und Kräften zu gewährleisten.
Danke für Ihr Feedback!