Vågen vs. Start

Scripting af API i Unity giver et sæt initialiseringsfunktioner.

Initialiseringsfunktioner er de funktioner, der kaldes i starten af ​​scriptets livscyklus.

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

'Awake' vs. 'Start'

Forskellene mellem 'Awake' og 'Start' er udførelsesrækkefølge og kørselsbetingelser.

Funktionen 'Awake' kører først, uanset om scriptet er aktiveret eller ej, og funktionen 'Start' kører kun, når scriptet er aktiveret. Begge funktioner kører før den første 'Update' metode.

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

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

Funktion 'Start' kan også være en Coroutine (ved at erstatte 'void' med 'IEnumerator' og tilføje en 'yield' parameter), men funktion 'Awake' kan ikke.

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

        Debug.Log("Start");
    }

Tag væk

Begge funktioner er nyttige til initialiseringsformål (f.eks. tildeling af private variabler, gydende spilobjekter osv.), og når de bruges i kombination, kan de hjælpe med at implementere en lang række scenarier.

Foreslåede artikler
Guide til MonoBehaviour in Unity
Metoder i begyndelsen af ​​Runtime, der initialiserer værdier i Unity
Enhedsliste over nyttige søgeord i C#
Forstå funktioner og metodekald
Introduktion til Unity C# Scripting Language
Sådan bliver du en bedre programmør i Unity
Unity obfuscation Methods og Anti-Hack Protection