Пробуждение против запуска
Сценарии 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");
}
Еда на вынос
Обе функции полезны для целей инициализации (например, назначения частных переменных, создания игровых объектов и т. д.), а при совместном использовании могут помочь реализовать широкий спектр сценариев.