Unity Safe Mode. Подробнее о новой возможности

insert_comment 0
visibility 298
|
12.10.2020

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

Проблемы, возникшие в процессе производства

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

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

Unity представляет безопасный режим

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

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

- Просмотр проекта с возможностью управления скриптами и определениями сборок

- Интеграция редакторов кода

- Окно диспетчера пакетов

- Консоль

- Инспектор

- Настройки проекта

- Поддержка контроля версий, кроме Unity Collaborate

Какие проблемы решает безопасный режим?

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

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

Кэширование поврежденных артефактов обычно называют «Почему мои материалы в предварительном просмотре имеют розовый цвет?». Когда ресурсы импортируются в контексте частично загруженных проектов, папка кэша библиотеки часто кэширует неправильные артефакты. Если зависимости ресурсов объявлены неправильно, Unity не может автоматически восстановить проект из кешированных неправильных артефактов, что приводит к непредсказуемому поведению при работе с проектом. Использование безопасного режима значительно сокращает случаи кеширования поврежденных артефактов.

Увеличенное время импорта или «Почему Unity повторно импортировал все мои текстуры?» Если зависимости ресурсов правильно объявлены в коде C # импортера ресурсов и постпроцессора, частично загруженный проект импортирует множество ресурсов один раз перед исправлением ошибок компиляции (что необязательно) и еще раз после исправления ошибок компиляции, что значительно увеличивает общее время импорта. Устранение всех ошибок компиляции в безопасном режиме позволяет избежать двойного импорта.

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

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

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

Batch mode

В предыдущих версиях Unity в Batch режиме также загружался проект с ошибками компиляции и продолжались импортироваться все ресурсы. После завершения импорта по умолчанию он завершает работу с сообщением об ошибке, если иное не указано в аргументах командной строки. Разработчики изменили это поведение в Unity 2020.2: теперь Batch mode по умолчанию больше не использует частичную загрузку проекта и импорт ресурсов и выходит с сообщением об ошибке, как только обнаруживаются ошибки компиляции. Это значительно ускоряет выполнение Batch mode'a при наличии ошибок компиляции. Это также не позволяет системам непрерывной интеграции (CI) заполнять сервер кэша ресурсов проекта некорректными артефактами импорта, что вызывает перечисленные выше проблемы не только локально на одном компьютере, но и для всех, кто работает над проектом.

Попробовать Safe mode уже можно, установив версию движка 2020.2 beta. Посмотреть демонстрацию работы Safe mode'a можно здесь

7 курсов бесплатно

Начните карьеру разработчика игр бесплатно!


    Комментарии


    Отзывы