Обзор
Безопасный режим Unity — это режим, в который редактор Unity может перейти, когда вы открываете проект, в котором есть ошибки компиляции скрипта. Безопасный режим обеспечивает наилучшую среду для устранения ошибок компиляции, чтобы вы могли быстро вернуть проект в рабочее состояние.
В безопасном режиме Unity предоставляет минимальную версию пользовательского интерфейса редактора с ограниченными функциями. Он импортирует только активы, связанные со скриптом, и запрещает импорт активов, не связанных со скриптом (таких как модели, материалы, текстуры и префабы). Это связано с тем, что безопасный режим предназначен не для создания контента, а только для устранения ошибок компиляции.
Безопасный режим никогда не позволяет запускать управляемый код из вашего проекта или его пакетов. Это означает ваши собственные скриптыфрагмент кода, который позволяет вам создавать свои собственные компоненты, запускать игровые события, изменять свойства компонентов с течением времени. и отвечайте на ввод пользователя любым удобным для вас способом. Подробнее
См. в Словарь, например Скрипты редактора, постпроцессоры активов и программы импорта со сценариями не запускаются. Безопасный режим также отключает переопределения сборки, а также Burst и Roslyn Анализаторы. Это гарантирует, что редактор в безопасном режиме всегда полностью функционален и надежен, даже если он открывает проект в очень поврежденном состоянии.
Unity автоматически выходит из безопасного режима, когда обнаруживает, что больше нет ошибок компиляции. При выходе из безопасного режима Unity полностью импортирует ваш проект, а редактор восстанавливает свою обычную полную функциональность.
Распространенные причины ошибок компиляции
Некоторые распространенные сценарии, которые могут привести к возникновению ошибок компиляции, возникают, когда вы:
- Обновите проект со старой версии Unity на более новую.
- Откройте проект в версии Unity, отличной от той, в которой он был создан.
- Откройте проект с отсутствующим пакетомконтейнером, в котором хранятся различные типы функции и ресурсы для Unity, включая инструменты и библиотеки Editor или Runtime, коллекции ресурсов и шаблоны проектов. Пакеты — это автономные единицы, которые диспетчер пакетов Unity может совместно использовать в проектах Unity. В большинстве случаев они называются пакетами, но иногда их называют пакетами Unity Package Manager (UPM). Подробнее
См. в Словарь или неверную версию пакета. - Откройте проект, в котором есть ошибки в ваших собственных скриптах.
- Откройте проект в системе управления версиямисистеме управления изменениями файлов. Вы можете использовать Unity в сочетании с наиболее распространенными инструментами контроля версий, включая Perforce, Git, Mercurial и PlasticSCM. Подробнее
Посмотрите в Словарь, где последние внесенные вами изменения содержали ошибки компиляции.
Открытие проекта с ошибками компиляции без безопасного режима может вызвать множество проблем. Например, пакетыПакеты — это наборы ресурсов, которыми можно делиться и повторно использовать в Единство. Диспетчер пакетов Unity (UPM) может отображать, добавлять и удалять пакеты из вашего проекта. Эти пакеты являются родными для менеджера пакетов Unity и обеспечивают фундаментальный метод предоставления функциональных возможностей Unity. Однако диспетчер пакетов Unity также может отображать пакеты ресурсов, загруженные из магазина активов. Подробнее
См. в Словарь в вашем проекте может не загрузиться или не работать неправильно, и ваши ресурсы могут быть неправильно импортированы, что приведет к некорректным кэшированным артефактам в вашей библиотеке или в вашем Кэш-серверОтдельное приложение, которое можно запустить на локальном компьютере и которое хранит импортированные данные ресурсов, чтобы сократить время, необходимое для импорта ресурсов. Подробнее
См. в Словарь.
В таких ситуациях обычно не нужно ждать, пока остальная часть проекта будет импортирована, прежде чем вы сможете устранить ошибки. Безопасный режим предоставляет вам инструменты для самостоятельного решения этих проблем, связанных со сценариями, или для использования контроля версий для обновления вашего проекта до более новой версии, которая устраняет ошибки, не дожидаясь полного импорта проекта.
Вход в безопасный режим
Когда вы открываете проект с ошибками компиляции, редактор отображает диалоговое окно с вопросом, хотите ли вы войти в безопасный режим:
На данный момент у вас есть три варианта:
- Войти в безопасный режим
- Игнорировать ошибки и открыть проект
- Выйти Unity
В большинстве случаев следует выбрать Войти в безопасный режим, чтобы устранить ошибки в проекте (или, если вы работаете с контролем версий, чтобы получить изменения, содержащие исправления ошибок). Безопасный режим обеспечивает наилучшую среду для устранения ошибок компиляции, так что вы можете быстро вернуть свой проект в рабочее состояние, прежде чем Unity импортирует остальную часть вашего проекта.
Однако в некоторых случаях вам может не понадобиться входить в безопасный режим, и в этом случае вы можете Выйти из Unity или Игнорировать ошибки.
Примечание. Это диалоговое окно можно отключить, выбрав Правка > Настройки > Общие > Показать диалоговое окно входа в безопасный режим. . Если вы отключите это диалоговое окно, Unity автоматически перейдет в безопасный режим при открытии проекта с ошибками компиляции.
Выход без входа в безопасный режим
Безопасный режим специально разработан для исправления ошибок компиляции. Если вы работаете над проектом Unity в составе команды, но не несете ответственности за скрипты, вызывающие ошибки, и не знаете, что делать, вам следует выбрать Выход в диалоговом окне. , и обратитесь за советом к программистам из вашей команды.
Игнорирование ошибок и продолжение импорта
В некоторых ситуациях вам не нужно, чтобы проект был в пригодном для использования состоянии (например, если вы открываете старый проект, чтобы скопировать некоторые части или просто проверить, как он настроен). В этом случае вы можете проигнорировать ошибки и все равно открыть свой проект в сломанном состоянии.
Если вы выберете Игнорировать, а позже захотите открыть проект в безопасном режиме, вы можете закрыть и снова открыть Unity, чтобы снова получить доступ к диалоговому окну «Войти в безопасный режим».
Последствия игнорирования ошибок компиляции
Если вы решите проигнорировать ошибки, Unity продолжит импорт остальных ресурсов и полностью откроет ваш проект. Потенциальные последствия здесь включают:
Возможно, ваш проект находится в непригодном для использования состоянии. Возможно, вы не сможете войти в игровой режим или создать сборки своего проекта, пока ошибки не будут устранены. Кроме того, любые пакеты в вашем проекте могут загружаться неправильно или вообще не загружаться.
Возможно, Unity потребуется дважды импортировать ваши ресурсы; один раз при запуске и еще раз после устранения ошибок компиляции проекта. Это увеличивает время, необходимое для загрузки проекта в пригодном для использования состоянии.
Если в вашем проекте используется конвейер рендеринга с поддержкой сценариев, ваш модуль рендеринга может не загрузиться, что приведет к визуальным проблемам, таким как розовый/пурпурный значок ShaderНебольшой скрипт, содержащий математические расчеты и алгоритмы расчета цвета каждого визуализируемого пикселя на основе входных данных освещения и Конфигурация материала. Подробнее
See in Словарь».Ошибки компиляции скрипта могут вызвать вторичные ошибки в вашем проекте. Например, если программа импорта со сценарием в вашем проекте не может загрузиться из-за ошибок компиляции, ваши ресурсы могут быть импортированы в неправильном состоянии.
Безопасный режим призван помочь вам избежать всех этих проблем.
Редактор в безопасном режиме
В безопасном режиме Unity предоставляет минимальный интерфейс редактора с ограниченными функциями.
Редактор Unity отображает баннер безопасного режима на панели инструментовряд кнопок и основных элементов управления в верхней части Unity Редактор, который позволяет взаимодействовать с редактором различными способами (например, масштабирование, перевод). Подробнее
См. в разделе Словарь в верхней части Редактора, который заменяет стандартный Редактор. панель инструментов. Панель инструментов показывает, что вы находитесь в безопасном режиме, и предоставляет кнопку Выйти из безопасного режима, которая позволяет игнорировать оставшиеся ошибки и выйти из безопасного режима. Баннер также указывает, использует ли ваш проект пакеты предварительной версиипакет preview. находится в разработке и еще не готов к производству. Предварительный просмотр пакета может находиться на любой стадии разработки, от начальных до практически завершенных.
См. в Словарь.
Редактор Unity сохраняет свою интеграцию с редакторами кода в безопасном режиме, поэтому вы можете дважды щелкнуть ресурсы скрипта или ошибку консоли a>s, чтобы открыть связанные с ними сценарии, и вы можете открыть проект C# через меню Ресурсы. Он также сохраняет свою интеграцию с системами контроля версий.
Ограниченный набор окон в безопасном режиме
Редактор отображает ограниченный набор окон в безопасном режиме. Это:
- Окно консоли
- Окно проекта
- Окно ИнспекторОкно Unity, в котором отображается информация о текущем выбранном игровом объекте, активе или настройках проекта, что позволяет вам проверять и отредактируйте значения. Дополнительная информация
См. в окне Словарь - Окно диспетчера пакетов
Это единственные доступные окна, поскольку они связаны с исправлением ошибок компиляции. В безопасном режиме другие окна недоступны.
Меню редактора в безопасном режиме
В безопасном режиме параметры, доступные в главном меню редактора, ограничены. Вы можете видеть и выбирать только те пункты меню, которые относятся к работе со скриптами; обычные возможности создания и работы с другим контентом недоступны. Например, вы не можете создавать или открывать СценыСцена содержит окружение и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
См. в Словарь или создайте ресурсы без сценария, такие как как примитивные формы, источники света или камерыКомпонент, который создает изображение определенной точки обзора в вашей сцене. Вывод либо рисуется на экране, либо фиксируется в виде текстуры. Подробнее
См. в Словарь. GameObjectОсновной объект в сценах Unity, который может представлять персонажей, реквизит, декорации, камеры, путевые точки и многое другое. . Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
См. в Словарь и Компонент меню отсутствуют, а меню Window предлагает только ограниченный набор окон.
Окно проекта в безопасном режиме
В безопасном режиме окно проектаокно, отображающее содержимое ваших ресурсов. Папка
(вкладка "Проект") Подробнее
See in Словарь имеет некоторые функциональные отличия от обычного поведения вне безопасного режима. .
Основное отличие состоит в том, что вы можете выбирать только ресурсы, связанные с компиляцией. Другие типы активов недоступны для выбора. Они остаются видимыми как затененные записи в окне проекта, но их нельзя выбирать или редактировать.
В частности, типы объектов, связанных с компиляцией, с которыми вы можете взаимодействовать:
- Файлы C# (.cs)
- DLL-файлы (.dll)
- Определения сборки (.asm)
- Файлы ответов (.rsp)
- Файлы наборов правил (.ruleset)
Кроме того, значки невыбираемых ресурсов не отображают предварительный просмотр содержимого ресурса. Вместо этого они показывают общий значок для представления типа актива.
Кнопка меню создать (+) отключена, а контекстное меню окна проекта содержит ограниченный набор доступных параметров.
Выход из безопасного режима
Unity автоматически выходит из безопасного режима после устранения всех ошибок компиляции. Затем Unity продолжает открывать ваш проект и импортировать ваши ресурсы.
Чтобы выйти из безопасного режима, пока еще остаются ошибки компиляции, нажмите кнопку Выйти из безопасного режима на панели инструментов безопасного режима. Это не рекомендуется (см. Последствия игнорирования ошибок компиляции), и Unity предложит вам подтвердить свое решение в диалоговом окне.
Если вы выходите из безопасного режима, когда в вашем проекте остаются ошибки, а позже хотите вернуться в безопасный режим, вы можете закрыть и снова открыть Unity, чтобы снова получить доступ к диалоговому окну «Войти в безопасный режим».
Безопасный режим в пакетном режиме
В пакетном режиме Unity автоматически завершает работу, если в вашем проекте есть ошибки компиляции, если вы не используете -ignoreCompilerErrors
аргумент командной строки.