Awake vs Start

Scriptarea API în Unity oferă un set de funcții de inițializare.

Funcțiile de inițializare sunt funcțiile care sunt apelate la începutul ciclului de viață al scriptului.

Funcțiile de inițializare în Unity sunt 'Awake' și 'Start'.

'Awake' vs. 'Start'

Diferențele dintre 'Awake' și 'Start' sunt ordinea de execuție și condițiile de rulare.

Funcția 'Awake' rulează prima, indiferent dacă scriptul este activat sau nu, iar funcția 'Start' rulează doar când scriptul este activat. Ambele funcții rulează înaintea primei metode 'Update'.

    void Awake()
    {
        Debug.Log("Awake runs first");
    }

    void Start()
    {
        Debug.Log("Start runds second");
    }

Funcția 'Start' poate fi și o Coroutine (prin înlocuirea 'void' cu 'IEnumerator' și adăugarea unui parametru 'yield'), dar funcția 'Awake' nu poate.

    IEnumerator Start()
    {
        //Wait 1 second before running the next code
        yield return new WaitForSeconds(1);

        Debug.Log("Start");
    }

La pachet

Ambele funcții sunt utile în scopuri de inițializare (de exemplu, alocarea de variabile private, apariția obiectelor de joc etc.), iar atunci când sunt utilizate în combinație, pot ajuta la implementarea unei game largi de scenarii.

Articole sugerate
Ghid pentru monocomportament în Unity
Metode de la începutul runtime care inițializează valori în Unity
Lista unității de cuvinte cheie utile în C#
Înțelegerea funcțiilor și apelurilor de metodă
Introducere în limbajul de scripting Unity C#
Cum să devii un programator mai bun în Unity
Metode de ofuscare Unity și protecție anti-hack