Update vs. FixedUpdate

In Unity werden sowohl die Update- als auch die FixedUpdate-Funktion verwendet, um das Verhalten von Objekten in einer Szene und währenddessen zu aktualisieren Sie dienen ähnlichen Zwecken, es gibt jedoch wesentliche Unterschiede zwischen den beiden.

'Update'

Die Funktion 'Update' wird einmal pro Frame aufgerufen und ist ideal für die Verarbeitung von Eingaben und die Aktualisierung von Objekt-Positionen und führt die meisten allgemeinen Aufgaben aus. Es ist nicht von der Bildrate abhängig, 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.

'FixedUpdate'

Die Funktion 'FixedUpdate' wird in festen Zeitintervallen aufgerufen und eignet sich daher für die Bearbeitung physikalischer Berechnungen. Es ist unabhängig von der Bildrate und gewährleistet ein konsistentes Verhalten über verschiedene Geräte und Bildraten hinweg.

void FixedUpdate()
{
    // Physics calculations
    rb.AddForce(transform.forward * forceMagnitude);
    
    // Other physics-related tasks
    // ...
}

Im obigen Beispiel üben wir eine konstante Kraft auf eine Rigidbody-Komponente in Vorwärtsrichtung des Objekts aus. Durch die Verwendung von 'FixedUpdate' wird sichergestellt, dass die physikalischen Berechnungen unabhängig von der Bildrate mit einer festen Rate erfolgen. Dies ist wichtig für die Aufrechterhaltung einer stabilen physikalischen Simulation.

'Update' vs 'FixedUpdate'

Hauptunterschiede zwischen den Funktionen 'Update' und 'FixedUpdate':

  • 'Update' wird einmal pro Frame aufgerufen, während FixedUpdate in festen Zeitintervallen aufgerufen wird.
  • 'Update' ist von der Bildrate abhängig, während FixedUpdate von der Bildrate unabhängig ist.
  • 'Update' eignet sich für die meisten allgemeinen Aufgaben, einschließlich Eingabeverarbeitung, Objektbewegung und nichtphysikalische Vorgänge.
  • FixedUpdate wurde speziell für physikbezogene Berechnungen entwickelt, z. B. das Anwenden von Kräften, das Anpassen von Starrkörpereigenschaften und das Durchführen anderer physikbasierter Operationen.

Abschluss

Es ist wichtig zu beachten, dass 'Update' und 'FixedUpdate' im selben Skript koexistieren können, was eine Trennung der Physik ermöglicht. verwandter Code aus anderem Allzweckcode. Das Verständnis der Unterschiede und die Verwendung der entsprechenden Funktion in jedem Kontext trägt dazu bei, ein reibungsloses und konsistentes Verhalten in den Unity-Projekten sicherzustellen.