Vaken vs. Start
Skriptning av API i Unity tillhandahåller en uppsättning initialiseringsfunktioner.
Initieringsfunktioner är de funktioner som anropas i början av skriptets livscykel.
Initialiseringsfunktioner i Unity är 'Awake' och 'Start'.
'Awake' mot. 'Start'
Skillnaderna mellan 'Awake' och 'Start' är exekveringsordning och körvillkor.
Funktionen 'Awake' körs först, oavsett om skriptet är aktiverat eller inte, och funktionen 'Start' körs bara när skriptet är aktiverat. Båda funktionerna körs före den första 'Update' metoden.
void Awake()
{
Debug.Log("Awake runs first");
}
void Start()
{
Debug.Log("Start runds second");
}
Funktion 'Start' kan också vara en Coroutine (genom att ersätta 'void' med 'IEnumerator' och lägga till en 'yield' parameter), men funktionen 'Awake' kan inte.
IEnumerator Start()
{
//Wait 1 second before running the next code
yield return new WaitForSeconds(1);
Debug.Log("Start");
}
Hämtmat
Båda funktionerna är användbara för initialiseringsändamål (t.ex. att tilldela privata variabler, skapa spelobjekt, etc.), och när de används i kombination kan de hjälpa till att implementera en mängd olika scenarier.