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");
    }

На винос

Обидві функції корисні для цілей ініціалізації (наприклад, призначення приватних змінних, породження ігрових об’єктів тощо), а при спільному використанні можуть допомогти реалізувати різноманітні сценарії.

Рекомендовані статті
Посібник з моноповедінки в Unity
Методи на початку середовища виконання, які ініціалізують значення в Unity
Список корисних ключових слів Unity в C#
Розуміння функцій і викликів методів
Вступ до мови сценаріїв Unity C#
Як стати кращим програмістом в Unity
Методи обфускації Unity та захист від злому