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

По умолчанию СценаСцена содержит среду и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
См. в Словарь
Перезагрузка включена. Это означает, что когда вы входите в игровой режим, Unity уничтожает все существующие сцены GameObjectsфундаментальные объекты в сценах Unity, которые могут представлять персонажей, реквизит, декорации, камеры, путевые точки и многое другое. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
Смотрите в Словарь
и перезагружает Сцену с диска. Время, необходимое Unity для этого, увеличивается вместе со сложностью сцены, а это означает, что по мере того, как ваш проект становится более сложным, вам приходится дольше ждать между моментом нажатия кнопки «Воспроизвести» и моментом полной загрузки сцены в редакторе. .

При отключении перезагрузки сцены процесс занимает меньше времени. Это позволяет вам быстрее итерировать разработку вашего проекта. Вместо перезагрузки сцены с диска Unity только сбрасывает измененное содержимое сцены. Это позволяет избежать потери времени и производительности при выгрузке и перезагрузке сцены. Unity по-прежнему вызывает те же функции инициализации (например, OnEnable, OnDisable и OnDestroy), как если бы он был только что загружен.

Последствия пропуска перезагрузки сцены

Чтобы отключить перезагрузку сцены:

  1. Выберите «Правка» > «Настройки проекта» > «Редактор».
  2. Убедитесь, что включен параметр "Войти в параметры игрового режима".
  3. Отключить повторную загрузку сцены

Дополнительную информацию см. в разделе Как настроить Play Mode

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

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

  1. Поля ScriptableObject и MonoBehaviour, не сериализованные в сборке ([NonSerialized], частные или внутренние), сохраняют свои значения. Это связано с тем, что Unity не воссоздает существующие объекты и не вызывает конструкторы. Кроме того, Unity преобразует пустые частные и внутренние поля типа массива/списка в пустой объект массива/списка во время перезагрузки домена и остается ненулевым во время выполнения (не в редакторе) скриптовКусок кода, позволяющий создавать собственные Компоненты, запускать игровые события, изменять свойства Компонентов с течением времени и реагировать на действия пользователя любым удобным для вас способом. Подробнее
    См. в Словарь
    .

  2. Сценарии, использующие сценарии ExecuteInEditMode или ExecuteAlways, не получают OnDestroy или вызовы Awake. Unity не вызывает Awake, а вызывает OnEnable только тогда, когда EditorApplication.isPlaying уже имеет значение true при изменении режима воспроизведения с помощью методов Awake/OnEnable, которые проверяют EditorApplication свойство .isPlaying. Несериализованные поля для сценариев времени выполнения (не редактора) не должны быть проблемой, поскольку они не активны в режиме редактирования, однако сценарии, отмеченные ExecuteInEditMode или ExecuteAlways может изменить себя или затронуть поля других сценариев времени выполнения. Чтобы обойти эту проблему, инициализируйте все затронутые поля в обратном вызове OnEnable самостоятельно.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3