Unity 6.3
0 онлайн 8 гостей 3 в системе
Вход

Безопасный режим

Обзор

Безопасный режим Unity — это режим, в который Unity Editor может войти, когда вы открываете проект с ошибками компиляции скриптов. Безопасный режим создаёт наилучшие условия для устранения ошибок компиляции, так что вы можете быстро вернуть проект в рабочее состояние.

В безопасном режиме Unity предоставляет минимальную версию интерфейса редактора с ограниченным набором функций. Импортируются только ассеты, связанные со скриптами, а импорт остальных ассетов (моделей, материалов, текстур, префабов) блокируется. Дело в том, что безопасный режим предназначен не для создания контента, а только для устранения ошибок компиляции.

Безопасный режим никогда не позволяет управляемому коду запускаться из вашего проекта или его пакетов. Это означает, что ваши собственные скрипты, такие как Сценарии редактора, постпроцессорных устройств, и скриптовые импортеры Безопасный режим также отключает переопределения сборки, и Burst и Рослин Аналитики. Это гарантирует, что редактор в безопасном режиме всегда полностью работоспособен и надёжен, даже когда он открывает проект в сильно повреждённом состоянии.

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

Общие причины ошибок компиляции

Некоторые типичные сценарии, которые могут привести к ошибкам компиляции, возникают при следующих действиях:

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

Открытие проекта с ошибками компиляции без безопасного режима может вызвать множество проблем. Например, пакеты в вашем проекте могут не загружаться или не функционировать правильно, а ваши ассеты могут быть импортированы неправильно, что приведет к неправильным кэшированным артефактам в вашем Библиотека или в вашем Кэш-сервер.

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

Вход в безопасный режим

Когда вы открываете проект, в котором имеются ошибки компиляции, Редактор отображает диалоговое окно с вопросом, хотите ли вы перейти в Безопасный Режим:

Диалоговое окно Вход в безопасный режим? предлагает перейти в безопасный режим при открытии проекта с ошибками компиляции
Диалоговое окно Вход в безопасный режим? предлагает перейти в безопасный режим при открытии проекта с ошибками компиляции

На этом этапе у вас есть три варианта:

  • Перейти в безопасный режим
  • Игнорируйте ошибки и откройте свой проект
  • Выйти Unity

В большинстве случаев, вы должны выбрать Перейти в безопасный режим чтобы устранить ошибки в вашем проекте (или, если вы работаете с системой контроля версий, чтобы загрузить изменения с исправлениями ошибок). Безопасный режим создаёт наилучшие условия для устранения ошибок компиляции, так что вы можете быстро вернуть проект в рабочее состояние, прежде чем Unity импортирует остальную его часть.

Однако, есть некоторые случаи, когда вы, возможно, не захотите войти в безопасный режим, в этом случае вы можете Выйти Unity, или Игнорировать ошибки.

Примечание: Вы можете отключить это диалоговое окно в Edit > Preferences > Asset Pipeline > Show Enter Safe Mode Dialog. Если вы отключите диалоговое окно, Unity автоматически перейдет в Безопасный режим при открытии проекта с ошибками компиляции.

Выход без безопасного режима

Безопасный режим специально разработан для исправления ошибок компиляции. Если вы работаете над проектом Unity в составе команды, но не несете ответственности за скрипты, вызывающие ошибки, и не знаете, что делать, вы должны выбрать Quit в диалоге и связаться с программистами в вашей команде за советом.

Игнорирование ошибок и продолжение импорта

Иногда проект не обязательно должен быть в рабочем состоянии — например, если вы открываете старый проект, чтобы скопировать оттуда что-то или просто посмотреть, как он настроен. В этом случае ошибки можно проигнорировать и всё равно открыть проект в неисправном состоянии.

Если вы выбрали Игнорироватьи позже захотите открыть проект в Безопасном режиме, вы можете закрыть и заново открыть Unity, чтобы снова получить доступ к диалогу «Вход в безопасный режим».

Последствия игнорирования ошибок компиляции

Если вы решите проигнорировать ошибки, Unity продолжит импортировать остальные ваши ассеты и откроет ваш проект полностью. Потенциальные последствия здесь включают:

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

  • Unity может потребоваться импортировать ваши ассеты дважды: один раз при запуске и ещё раз после устранения ошибок компиляции проекта. Это увеличивает время, необходимое, чтобы привести проект в рабочее состояние.

  • Если ваш проект использует Scriptable Render Pipeline, ваш конвейер рендеринга может не загружаться, что приведет к визуальным проблемам, таким как ошибка шейдера.

  • Ошибки компиляции скрипта могут вызвать вторичные ошибки в вашем проекте. Например, если скриптовый импортер в вашем проекте не может загрузиться из-за ошибок компиляции, ваши ассеты могут быть импортированы в неправильном состоянии.

Безопасный режим разработан, чтобы помочь вам избежать всех этих проблем.

Редактор в безопасном режиме

В безопасном режиме Unity предоставляет минимальный интерфейс редактора с ограниченным набором функций.

Unity Editor в безопасном режиме
Unity Editor в безопасном режиме

В верхней части Unity Editor вместо стандартной панели инструментов Editor отображается баннер Safe Mode. Он сообщает, что вы находитесь в Safe Mode, и содержит кнопку Exit Safe Mode, позволяющую проигнорировать оставшиеся ошибки и выйти из Safe Mode. Баннер также показывает, использует ли проект preview-пакеты.

В Safe Mode Unity Editor сохраняет интеграцию с редакторами кода, поэтому связанные скрипты можно открывать двойным щелчком по ассетам скриптов или ошибкам Console, а проект C# — через меню Ассеты. Интеграция с системами управления версиями также сохраняется.

Ограниченный набор окон в безопасном режиме

Редактор отображает ограниченный выбор окон в безопасном режиме. Это:

  • Окно консоли
  • Окно Project
  • Окно Inspector
  • Окно Package Manager

Эти окна доступны только потому, что они связаны с исправлением ошибок компиляции. Другие окна в безопасном режиме недоступны.

Меню редактора в безопасном режиме

Опции, доступные в главном меню Редактора, ограничены ограниченным набором в Безопасном Режиме. Вы можете видеть и выбирать только те пункты меню, которые связаны с работой со скриптами; обычные опции для создания и работы с другим контентом недоступны. Например, вы не можете создавать или открывать Сцены, или создавать нескриптовые ассеты, такие как примитивные формы, свет или камеры. Меню GameObject и Компонент отсутствуют, а меню Окно предлагает только ограниченный набор окон.

Ограниченное меню редактора, как оно выглядит в безопасном режиме, отображающее доступные опции для создания ассетов.
Ограниченное меню редактора, как оно выглядит в безопасном режиме, отображающее доступные опции для создания ассетов.

Окно Project в безопасном режиме

В безопасном режиме окно Project имеет некоторые функциональные различия по сравнению с его обычным поведением вне безопасного режима.

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

В частности, можно взаимодействовать с следующими типами ассетов, связанных с компиляцией:

  • C# файлы (.cs)
  • DLL файлы (.dll)
  • Определения сборки (.asm)
  • Файлы ответов (.rsp)
  • Файлы наборов правил (.ruleset)

Кроме того, значки для невыбираемых ассетов не отображают предварительный просмотр содержимого ассета. Вместо этого они отображают общий значок, представляющий тип ассета.

Окно Project отображает общие значки для невыбираемых ассетов.
Окно Project отображает общие значки для невыбираемых ассетов.

Кнопка меню create (+) отключена, и контекстное меню окна Project имеет ограниченный набор доступных опций.

Кнопка меню создать (+) в окне проекта, отключенная в безопасном режиме
Кнопка меню create (+) в окне проекта, отключенная в Безопасном режиме

Выход из безопасного режима

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

Чтобы выйти из Безопасного Режима, когда все еще остаются ошибки компиляции, выберите кнопку Выйти из Безопасного Режима на панели инструментов Безопасного Режима. Это не рекомендуется (см. Последствия игнорирования ошибок компиляции), и Unity запросит диалоговое окно для подтверждения вашего решения.

Кнопка Выход из безопасного режима на панели инструментов безопасного режима
Кнопка Выход из безопасного режима на панели инструментов безопасного режима

Если вы выходите из безопасного режима, когда ошибки остаются в вашем проекте, и позже хотите вернуться в безопасный режим, вы можете закрыть и заново открыть Unity, чтобы снова получить доступ к диалогу «Вход в безопасный режим».

Безопасный режим в пакетном режиме

В пакетном режиме, Unity автоматически выходит, если в вашем проекте есть ошибки компиляции, если только вы не используете -ignoreCompilerErrors аргумент командной строки.