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.

Foreslåtte artikler
Guide til MonoBehaviour in Unity
Metoder i begynnelsen av kjøretid som initialiserer verdier i Unity
Enhetsliste over nyttige søkeord i C#
Forstå funksjoner og metodeanrop
Introduksjon til Unity C# Scripting Language
Hvordan bli en bedre programmerer i Unity
Unity obfuscation Methods og Anti-Hack Protection