Update vs. LateUpdate

In Unity werden die Funktionen Update und LateUpdate häufig verwendet, um das Verhalten von Objekten in einer Szene zu aktualisieren Obwohl sie ähnlichen Zwecken dienen, gibt es wesentliche Unterschiede zwischen den beiden.

'Update'

Die Funktion 'Update' wird einmal pro Frame aufgerufen und für die meisten allgemeinen Aufgaben verwendet, wie z. B. die Verarbeitung von Eingaben und die Verarbeitung von Objekten Bewegung. Es ist wichtig zu beachten, dass 'Update' nicht von der Bildrate abhängig ist, was bedeutet, dass die Ausführungszeit je nach Leistung variieren kann.

void Update()
{
    // Input handling
    float horizontalInput = Input.GetAxis("Horizontal");
    float verticalInput = Input.GetAxis("Vertical");
    
    // Movement
    Vector3 movement = new Vector3(horizontalInput, 0, verticalInput);
    transform.Translate(movement * speed * Time.deltaTime);
    
    // General-purpose tasks
    // ...
}

Im obigen Beispiel rufen wir Eingaben von der horizontalen und vertikalen Achse ab und verwenden sie, um die Bewegung des Objekts zu steuern. Die Methode 'Translate' wird verwendet, um das Objekt mit konstanter Geschwindigkeit in die angegebene Richtung zu bewegen. Allgemeine Aufgaben können auch innerhalb der Funktion 'Update' ausgeführt werden.

'LateUpdate'

Die Funktion 'LateUpdate' wird ebenfalls einmal pro Frame aufgerufen, aber ausgeführt, nachdem alle Funktionen 'Update' ausgeführt wurden abgeschlossen wurde. Es wird häufig verwendet, um sicherzustellen, dass andere Aktualisierungen wie Objekt-Bewegung oder Animationen abgeschlossen sind, bevor weitere Aktionen ausgeführt werden, die von diesen Aktualisierungen abhängen.

void LateUpdate()
{
    // Camera follow
    Vector3 desiredPosition = target.position + offset;
    transform.position = Vector3.Lerp(transform.position, desiredPosition, smoothness);
    
    // Additional actions after other updates
    // ...
}

Im obigen Beispiel wird die Funktion 'LateUpdate' verwendet, um einem Zielobjekt mit einer Kamera reibungslos zu folgen. Es stellt sicher, dass die Position der Kamera aktualisiert wird, nachdem die Bewegung des Ziels in den Funktionen 'Update' verarbeitet wurde. Zusätzliche Aktionen, die von der aktualisierten Position des Objekts abhängen, können auch innerhalb von 'LateUpdate' ausgeführt werden.

'Update' vs 'LateUpdate'

Hauptunterschiede zwischen den Funktionen 'Update' und LateUpdate:

  • 'Update' wird zuerst im Frame aufgerufen, gefolgt von LateUpdate.
  • 'Update' eignet sich für die meisten allgemeinen Aufgaben, einschließlich Eingabeverarbeitung, Objekt-Bewegung und nicht kamerabezogene Vorgänge.
  • LateUpdate wird häufig für kamerabezogene Aufgaben verwendet, z. B. zum reibungslosen Folgen eines Zielobjekts oder zum Ausführen von Aktionen, die von anderen Aktualisierungen abhängig sind.
  • Durch die Verwendung von LateUpdate wird sichergestellt, dass von anderen Aktualisierungen abhängige Aktionen ausgeführt werden, nachdem diese Aktualisierungen verarbeitet wurden.

Abschluss

Es ist erwähnenswert, dass sowohl 'Update' als auch 'LateUpdate' im selben Skript koexistieren können, wodurch verschiedene Typen getrennt werden können von Updates. Das Verständnis der Unterschiede und die Verwendung der entsprechenden Funktion in jedem Kontext trägt dazu bei, das gewünschte Verhalten in den Unity-Projekten zu erreichen.

Empfohlene Artikel
Update vs. FixedUpdate vs. LateUpdate
Vergleich von LateUpdate und FixedUpdate in Unity
Update vs. FixedUpdate
Wach vs. Start
Implementieren einer benutzerdefinierten Aktualisierungsrate in Unity
So pausieren Sie das Spiel in Unity
Unity implementiert Schrittgeräusche