Przebudź się a zacznij

Skrypty API w Unity udostępniają zestaw funkcji inicjujących.

Funkcje inicjujące to funkcje wywoływane na początku cyklu życia skryptu.

Funkcje inicjujące w Unity to 'Awake' i 'Start'.

'Awake' vs. 'Start'

Różnice pomiędzy 'Awake' i 'Start' to kolejność wykonania i warunki wykonania.

Funkcja 'Awake' jest uruchamiana jako pierwsza, niezależnie od tego, czy skrypt jest włączony, czy nie, a funkcja 'Start' jest uruchamiana tylko wtedy, gdy skrypt jest włączony. Obie funkcje działają przed pierwszą metodą 'Update'.

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

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

Funkcja 'Start' może być także współprogramem (poprzez zastąpienie 'void' przez 'IEnumerator' i dodanie parametru 'yield'), ale funkcja 'Awake' nie.

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

        Debug.Log("Start");
    }

Na wynos

Obie funkcje są przydatne do celów inicjalizacji (np. przypisywania zmiennych prywatnych, tworzenia obiektów gry itp.), a użyte w połączeniu mogą pomóc w implementacji szerokiej gamy scenariuszy.

Sugerowane artykuły
Przewodnik po MonoBehaviour w Unity
Metody na początku środowiska wykonawczego, które inicjują wartości w jedności
Lista Unity przydatnych słów kluczowych w C#
Wprowadzenie do języka skryptowego Unity C#
Jak zostać lepszym programistą w Unity
Metody zaciemniania Unity i ochrona przed hakerami
Zrozumienie funkcji i wywołań metod