Пробуждение против запуска

Сценарии 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");
    }

Еда на вынос

Обе функции полезны для целей инициализации (например, назначения частных переменных, создания игровых объектов и т. д.), а при совместном использовании могут помочь реализовать широкий спектр сценариев.

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