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.

Empfohlene Artikel
Leitfaden für MonoBehaviour in Unity
Methoden zu Beginn der Laufzeit, die Werte in Unity initialisieren
Unity-Liste nützlicher Schlüsselwörter in C#
Funktionen und Methodenaufrufe verstehen
Einführung in die Skriptsprache Unity C#
So werden Sie ein besserer Programmierer in Unity
Unity-Verschleierungsmethoden und Anti-Hack-Schutz