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.

Voorgestelde artikelen
Gids voor monogedrag in eenheid
Methoden aan het begin van Runtime die waarden in eenheid initialiseren
Eenheidslijst met nuttige trefwoorden in C#
Functies en methodeaanroepen begrijpen
Inleiding tot Unity C#-scripttaal
Hoe je een betere programmeur kunt worden in Unity
Unity-verduisteringsmethoden en anti-hackbescherming