Vaken vs. Start

Skriptning av API i Unity tillhandahåller en uppsättning initialiseringsfunktioner.

Initieringsfunktioner är de funktioner som anropas i början av skriptets livscykel.

Initialiseringsfunktioner i Unity är 'Awake' och 'Start'.

'Awake' mot. 'Start'

Skillnaderna mellan 'Awake' och 'Start' är exekveringsordning och körvillkor.

Funktionen 'Awake' körs först, oavsett om skriptet är aktiverat eller inte, och funktionen 'Start' körs bara när skriptet är aktiverat. Båda funktionerna körs före den första 'Update' metoden.

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

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

Funktion 'Start' kan också vara en Coroutine (genom att ersätta 'void' med 'IEnumerator' och lägga till en 'yield' parameter), men funktionen 'Awake' kan inte.

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

        Debug.Log("Start");
    }

Hämtmat

Båda funktionerna är användbara för initialiseringsändamål (t.ex. att tilldela privata variabler, skapa spelobjekt, etc.), och när de används i kombination kan de hjälpa till att implementera en mängd olika scenarier.

Föreslagna artiklar
Guide till MonoBehaviour in Unity
Metoder i början av körtid som initierar värden i Unity
Enhetslista med användbara sökord i C#
Förstå funktioner och metodanrop
Introduktion till Unity C# Scripting Language
Hur man blir en bättre programmerare i Unity
Unity Obfuscation Methods och Anti-Hack Protection