Update vs. FixedUpdate vs. LateUpdate

Ein wichtiger Teil der Unity API sind die Update-Funktionen, also die Funktionen, die kontinuierlich ausgeführt werden.

Unity verfügt über drei Arten von Aktualisierungsfunktionen: 'Update', FixedUpdate und LateUpdate.

'Update' vs FixedUpdate

Der Unterschied zwischen 'Update'- und FixedUpdate-Funktionen besteht darin, wie oft sie ausgeführt werden.

Die 'Update'-Funktion wird einmal pro Frame ausgeführt, während FixedUpdate mit einer konstanten Rate ausgeführt wird, gesteuert durch den "Fixed Timestamp"-Wert in 'Project Settings' -> 'Time'.

'Update' Funktionen eignen sich zum Programmieren der Spiellogik, Spielereingaben und im Grunde für alle nichtphysikalischen Berechnungen.

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            //Space button has been pressed
        }    
    }

Andererseits eignen sich FixedUpdate-Funktionen für physikbasierte Berechnungen wie Raycasting, das Anwenden von Kräften auf starre Körper oder alle Berechnungen, die unabhängig von der Framerate sein müssen.

    void FixedUpdate()
    {
        //Use Physics Raycast to detect if there any object in front
        RaycastHit hit;
        if(Physics.Raycast(transform.position, transform.forward, out hit, 10))
        {
            Debug.Log("Object '" + hit.transform.name + "' is currently in front of this object.");
        }
    }

Update vs LateUpdate

'Update' und LateUpdate sind hinsichtlich der Lauffrequenz identisch (beide laufen einmal pro Frame), aber LateUpdate läuft nach allen 'Update'-Funktionen.

Schließlich wird die Funktion LateUpdate häufig verwendet, um animierte Modellknochen zu ändern (z. B. um das Spielermodell nach oben und unten schauen zu lassen) oder um eine reibungslose Kameraverfolgung zu implementieren.

    void LateUpdate()
    {
        //Make camera tagged 'MainCamera' look at this object transform
        Camera mainCamera = Camera.main;
        mainCamera.transform.LookAt(transform);
    }

Wegbringen

Jede Update-Funktion hat ihren eigenen Anwendungsfall.

Nutzen Sie sie in Kombination, um unterschiedlichste Szenarien umzusetzen.

Empfohlene Artikel
Leitfaden für MonoBehaviour in Unity
Wach vs. Start
Einführung in die Skriptsprache Unity C#
Verwenden des Runtime Animator Controllers in Unity
Unity-Liste nützlicher Schlüsselwörter in C#
Implementieren von Tastatur- und Mauseingaben in Unity
Funktionen und Methodenaufrufe verstehen