Awake проти Start
Сценарій API у Unity забезпечує набір функцій ініціалізації.
Функції ініціалізації — це функції, які викликаються на початку життєвого циклу сценарію.
Функціями ініціалізації в Unity є 'Awake' і 'Start'.
'Awake' проти 'Start'
Відмінності між 'Awake' і 'Start' полягають у порядку виконання й умовах виконання.
Функція 'Awake' запускається першою, незалежно від того, увімкнено сценарій чи ні, а функція 'Start' запускається лише тоді, коли скрипт увімкнено. Обидві функції виконуються перед першим методом 'Update'.
void Awake()
{
Debug.Log("Awake runs first");
}
void Start()
{
Debug.Log("Start runds second");
}
Функція 'Start' також може бути співпрограмою (шляхом заміни 'void' на 'IEnumerator' і додавання параметра 'yield'), але функція 'Awake' не може.
IEnumerator Start()
{
//Wait 1 second before running the next code
yield return new WaitForSeconds(1);
Debug.Log("Start");
}
На винос
Обидві функції корисні для цілей ініціалізації (наприклад, призначення приватних змінних, породження ігрових об’єктів тощо), а при спільному використанні можуть допомогти реалізувати різноманітні сценарії.