Våken vs. Start

Skripting API i Unity gir et sett med initialiseringsfunksjoner.

Initialiseringsfunksjoner er funksjonene som kalles ved starten av skriptets livssyklus.

Initialiseringsfunksjoner i Unity er 'Awake' og 'Start'.

'Awake' vs. 'Start'

Forskjellene mellom 'Awake' og 'Start' er utførelsesrekkefølge og kjørebetingelser.

Funksjonen 'Awake' kjører først, uansett om skriptet er aktivert eller ikke, og funksjonen 'Start' kjører kun når skriptet er aktivert. Begge funksjonene kjører før den første 'Update' metoden.

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

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

Funksjon 'Start' kan også være en Coroutine (ved å erstatte 'void' med 'IEnumerator' og legge til en 'yield' parameter), men funksjon 'Awake' kan ikke.

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

        Debug.Log("Start");
    }

Ta bort

Begge funksjonene er nyttige for initialiseringsformål (f.eks. tilordning av private variabler, gytespillobjekter, etc.), og når de brukes i kombinasjon, kan de bidra til å implementere en lang rekke scenarier.