Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Подробная информация об отключении перезагрузки домена и сцены

Что пропускает Unity при отключении перезагрузки домена и перезагрузки сцены

С точки зрения высокого уровня вход в игровой режим состоит из следующих основных этапов:

  • Резервное копирование текущих сцен. Это происходит только в том случае, если СценаСцена содержит среду и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
    См. в Словарь
    был изменен. Позволяет Unity возвращать сцены при выходе из режима воспроизведения в состояние, в котором они находились до запуска режима воспроизведения.
  • Перезагрузка домена. Сбрасывает состояние сценария, перезагружая домен сценария.
  • Перезагрузка сцены. Сбрасывает состояние сцены путем перезагрузки сцены.
  • Обновить сцену. Это происходит дважды; один раз без рендерингаПроцесс вывода графики на экран (или текстуры рендеринга). По умолчанию основная камера в Unity отображает изображение на экране. Подробнее
    См. в Словарь
    и один раз с визуализацией.

Объединение задач Перезагрузка домена и Перезагрузка сцены сбрасывает домен сценария и имитирует поведение вашего приложения при запуске, как если бы оно выполнялось в проигрывателе. Unity пропускает эти шаги, если вы отключаете их в Настройках проекташирокий набор настроек, которые позволяют вам настроить, как физика, звук, Сеть, графика, ввод и многие другие области вашего проекта ведут себя. Подробнее
См. в Словарь
.

На диаграмме ниже представлена ​​подробная информация о конкретных событиях, которые Unity пропускает при отключении перезагрузки домена и перезагрузки сцены. Синим цветом обозначены события, которые Unity пропускает, когда отключена перезагрузка домена, а зеленым — события, которые Unity пропускает, когда отключена перезагрузка сцены.

Что делает Unity при включении перезагрузки сцены и перезагрузки домена

При включенной перезагрузке сцены и перезагрузке домена это полный список всех процессов и событий, которые Unity выполняет при входе в режим воспроизведения:

  1. Вызывается событие AssemblyReloadEvent beforeAssemblyReload.
  2. Домен C# остановлен:
    а. OnDisable() вызывается для всех объектов ScriptableObject и MonoBehaviours.
    б. Unity ожидает завершения всех асинхронных операций.
  3. Состояние всех объектов MonoBehaviours и ScriptableObject сериализуется.
    а. Вызывается OnBeforeSerialize().
    б. Все значения открытых и закрытых полей сериализуются, кроме тех, которые отмечены [NonSerialized].
  4. Управляемые оболочки отключены от собственных объектов Unity.
  5. Дочерний домен Unity перезагружается:
    а. Выгрузка монодомена:
    я. Возникает событие AppDomain.DomainUnload.
    II. Дочерний домен Unity уничтожен
    1. Вызываются GC и финализаторы.
    2. Потоки закрыты.
    3. Вся информация JIT удаляется.
    б. Новый дочерний домен Unity создан.
  6. Сборки загружены:
    а. Системные сборки загружены.
    б. Сборки Unity загружены.
    в. Пользовательские сборки загружены.
  7. Контекст синхронизации инициализирован.
  8. Состояние сценария восстановлено.
    а. Часть всех объектов Unity, допускающая выполнение сценариев, создается заново.
    я. Вызываются конструкторы, и статическим параметрам присваиваются значения по умолчанию.
    б. Состояние всех объектов Unity десериализуется:
    я. Восстанавливается сериализованное состояние всех объектов Unity.
    1. Возникает событие OnAfterDeserialize.
    II. Вызывается OnValidate().
    III. Для скриптовфрагмент кода, позволяющий создавать собственные компоненты, запускать игровые события, изменять свойства компонентов с течением времени и реагировать на пользовательский ввод любым удобным для вас способом. Подробнее
    См. в Словарь
    с помощью [ExecuteInEditMode] атрибут:
    1. Вызывается OnEnable().
    2. Вызывается OnDisable().
    3. Вызывается OnDestroy().
  9. Методы с InitializeOnLoad и InitializeOnLoadMethod вызываются.
  10. Вызывается событие AssemblyReloadEvent afterAssemblyReload.
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3