Wakker versus start

Het scripten van API in Unity biedt een reeks initialisatiefuncties.

Initialisatiefuncties zijn de functies die worden aangeroepen aan het begin van de levenscyclus van het script.

Initialisatiefuncties in Unity zijn 'Awake' en 'Start'.

'Awake' versus 'Start'

De verschillen tussen 'Awake' en 'Start' zijn de uitvoeringsvolgorde en uitvoeringsvoorwaarden.

De functie 'Awake' wordt als eerste uitgevoerd, ongeacht of het script is ingeschakeld of niet, en de functie 'Start' wordt alleen uitgevoerd als het script is ingeschakeld. Beide functies worden uitgevoerd vóór de eerste 'Update'-methode.

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

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

Functie 'Start' kan ook een Coroutine zijn (door 'void' te vervangen door 'IEnumerator' en een parameter 'yield' toe te voegen), maar functie 'Awake' niet.

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

        Debug.Log("Start");
    }

Afhaal

Beide functies zijn nuttig voor initialisatiedoeleinden (bijvoorbeeld het toewijzen van privévariabelen, het spawnen van spelobjecten, enz.) en kunnen, wanneer ze in combinatie worden gebruikt, helpen bij het implementeren van een grote verscheidenheid aan scenario's.