Actualizare vs FixedUpdate vs LateUpdate

O parte proeminentă a Unity API sunt funcțiile de actualizare, care sunt funcțiile care rulează continuu.

Unity are trei tipuri de funcții de actualizare: 'Update', FixedUpdate și LateUpdate.

'Update' vs FixedUpdate

Diferența dintre funcțiile 'Update' și FixedUpdate constă în cât de des rulează.

Funcția 'Update' rulează o dată pe cadru, în timp ce FixedUpdate rulează la o rată constantă, controlată de valoarea "Fixed Timestamp" din 'Project Settings' -> 'Time'.

'Update' funcțiile sunt potrivite pentru programarea logicii jocului, intrarea jucătorului și, practic, orice calcule non-fizice.

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

Pe de altă parte, funcțiile FixedUpdate sunt potrivite pentru calcule bazate pe fizică, cum ar fi Raycasting, aplicarea forțelor la Rigidbodies sau orice calcule care trebuie să fie independente de framerate.

    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.");
        }
    }

Actualizare vs LateUpdate

'Update' și LateUpdate sunt identice în ceea ce privește frecvența de rulare (ambele rulează o dată pe cadru), dar LateUpdate rulează după toate funcțiile 'Update'.

În cele din urmă, funcția LateUpdate este folosită în mod obișnuit pentru a modifica oasele modelului animat (de ex. face ca modelul jucătorului să arate în sus și în jos) sau pentru a implementa o urmărire lină a camerei.

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

La pachet

Fiecare funcție de actualizare are propriul caz de utilizare.

Utilizați-le în combinație pentru a implementa o mare varietate de scenarii.

Articole sugerate
Ghid pentru monocomportament în Unity
Introducere în limbajul de scripting Unity C#
Utilizarea Runtime Animator Controller în Unity
Lista unității de cuvinte cheie utile în C#
Implementarea introducerii prin tastatură și mouse în Unity
Înțelegerea funcțiilor și apelurilor de metodă
Crearea instrucțiunilor condiționate (dacă-altfel) în Unity Code