Wach vs. Start

Die Skripterstellung API in Unity stellt eine Reihe von Initialisierungsfunktionen bereit.

Initialisierungsfunktionen sind die Funktionen, die zu Beginn des Skriptlebenszyklus aufgerufen werden.

Initialisierungsfunktionen in Unity sind 'Awake' und 'Start'.

'Awake' vs. 'Start'

Die Unterschiede zwischen 'Awake' und 'Start' liegen in der Ausführungsreihenfolge und den Ausführungsbedingungen.

Die Funktion 'Awake' wird zuerst ausgeführt, unabhängig davon, ob das Skript aktiviert ist oder nicht, und die Funktion 'Start' wird nur ausgeführt, wenn das Skript aktiviert ist. Beide Funktionen werden vor der ersten 'Update'-Methode ausgeführt.

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

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

Die Funktion 'Start' kann auch eine Coroutine sein (indem 'void' durch 'IEnumerator' ersetzt und ein Parameter 'yield' hinzugefügt wird), die Funktion 'Awake' jedoch nicht.

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

        Debug.Log("Start");
    }

Wegbringen

Beide Funktionen sind für Initialisierungszwecke nützlich (z. B. Zuweisen privater Variablen, Spawnen von Spielobjekten usw.) und können in Kombination dazu beitragen, eine Vielzahl von Szenarien umzusetzen.