Aktualizacja vs Naprawiono aktualizację vs LateUpdate

Istotną częścią Unity API są funkcje aktualizacji, które działają w sposób ciągły.

Unity ma trzy typy funkcji aktualizacji: 'Update', FixedUpdate i LateUpdate.

'Update' vs FixedUpdate

Różnica pomiędzy funkcjami 'Update' i FixedUpdate polega na tym, jak często są uruchamiane.

Funkcja 'Update' działa raz na ramkę, podczas gdy FixedUpdate działa ze stałą szybkością, kontrolowaną przez wartość "Fixed Timestamp" w 'Project Settings' -> 'Time'.

'Update' funkcje nadają się do programowania logiki gry, wprowadzania danych przez gracza i zasadniczo wszelkich obliczeń innych niż fizyczne.

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

Z drugiej strony funkcje FixedUpdate nadają się do obliczeń opartych na fizyce, takich jak rzutowanie promieni, przykładanie sił do ciał sztywnych lub wszelkich obliczeń, które muszą być niezależne od liczby klatek na sekundę.

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

Aktualizacja vs LateUpdate

'Update' i LateUpdate są identyczne pod względem częstotliwości wykonywania (oba są uruchamiane raz na ramkę), ale LateUpdate działa po wszystkich funkcjach 'Update'.

Wreszcie funkcja LateUpdate jest powszechnie używana do modyfikowania animowanych kości modelu (np. sprawiania, że ​​model gracza będzie patrzył w górę i w dół) lub do płynnego podążania za kamerą.

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

Na wynos

Każda funkcja aktualizacji ma swój własny przypadek użycia.

Używaj ich w połączeniu, aby wdrożyć szeroką gamę scenariuszy.

Sugerowane artykuły
Przewodnik po MonoBehaviour w Unity
Wprowadzenie do języka skryptowego Unity C#
Korzystanie z kontrolera Runtime Animator w Unity
Lista Unity przydatnych słów kluczowych w C#
Implementowanie wprowadzania danych z klawiatury i myszy w Unity
Zrozumienie funkcji i wywołań metod
Tworzenie instrukcji warunkowych (if-else) w kodzie Unity