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

Обновление до Unity 2020 LTS

Примечание. Следуйте советам в этом разделе в порядке выпуска. Например, если вам нужно обновить проект с версии 2018 до версии 2020, прочтите руководства по обновлению версии 2019, чтобы узнать, есть ли какие-либо изменения, которые вам нужно внести, прежде чем читать руководства по обновлению версии 2020.

На этой странице перечислены изменения в версии Unity 2020 LTS, которые могут повлиять на существующие проекты при обновлении с версии 2019 до 2020 LTS.

Обратите внимание, что 2020LTS также известен как 2020.3.

Контур страницы


Все вершины сетки трансформируются для лучшей развертки UV

Unity может изменить Meshосновной графический примитив Unity. Меши составляют большую часть ваших 3D-миров. Unity поддерживает триангулированные или четырехугольные полигональные сетки. Поверхности Nurbs, Nurms, Subdiv должны быть преобразованы в полигоны. Подробнее
См. в Словарь
UVs 3D-объекты3D-игровые объекты, такие как куб, ландшафт или тряпичная кукла. Подробнее
См. Словарь
, который вы импортируете в проект.

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

Начиная с Unity 2020.1, Unity создает UV-карты освещения с использованием преобразованных вершин Mesh, если вы включили Generate LightmapПредварительно визуализированная текстура, содержащая эффекты источников света на статических объектах сцены. Карты освещения накладываются поверх геометрии сцены для создания эффекта освещения. Подробнее
См. в Словарь
UVs
. До Unity 2020.1 Unity генерировала UV-карты освещения с использованием исходных импортированных положений вершин Mesh перед автоматическим преобразованием положения.

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

Вверх

Хэши всех наборов ресурсов разные, поэтому все пакеты создаются

Начиная с Unity 2020.1, Unity генерирует другой хэш для всех пакетов ресурсов в вашем проекте. Это гарантирует создание всех пакетов, в том числе пакетов с одинаковым содержимым, но с разными путями загрузки.

Вверх

Пакет многопользовательского HLAPI не устанавливается автоматически при обновлении проекта

Начиная с Unity 2020.1, установите многопользовательский пакет HLAPI из диспетчера пакетов, если в обновляемом проекте есть скриптыЧасть кода, который позволяет вам создавать свои собственные Компоненты, запускать игровые события, изменять свойства Компонентов с течением времени и реагировать на ввод данных пользователем любым удобным для вас способом. Подробнее
См. в Словаре
, которые используют многопользовательский HLAPI.

В версиях Unity с 2019.1 по 2019.4 Unity автоматически устанавливала многопользовательский пакет HLAPI при обновлении проекта, созданного в Unity 2018.4 или более ранней версии.

Вверх

Улучшено запекание LOD с помощью Progressive Lightmapper

Прогрессивный Lightmapper от UnityИнструмент в Unity, который запекает карты освещения в соответствии с расположением источников света и геометрией в вашей сцене. Подробнее
См. в Словарь
состоит из картографов ЦП и ГП.

Начиная с Unity 2020.1, карта освещения графического процессора поддерживает уровень детализации (LOD) запекание.

Программа освещения ЦП использует тот же алгоритм запекания, что позволяет Unity полностью использовать все доступные ядра ЦП для сокращения времени запекания в сценахСцена содержит окружение и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
См. в Словарь
с LODТехника Level Of Detail (LOD) — это оптимизация, которая уменьшает количество треугольников, которые Unity должна отображать для GameObject, когда его расстояние от камеры увеличивается. Подробнее
Просмотрите в Словарь
значения выше 0.

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

  1. В редакторе Unity откройте Window > Rendering > Lighting Settings.
  2. В Debug Settings,щелкните раскрывающееся меню на кнопке Generate Lighting, затем нажмите Clear Baked Data.
  3. Нажмите на Generate Lighting.

Вверх

Ключевые изменения Adaptive Performance

Чтобы обновить Adaptive Performance с 1.0 до 2.0, см. Руководство по обновлению Adaptive Performance.

Вверх

Создание проекта Xcode

Выбор пути сборки проекта MacOS Standalone Xcode изменился. Теперь вы должны указать путь к нужному каталогу, а .xcodeproj и сопутствующие файлы будут созданы внутри целевого каталога. Папка сборки MacOS не может находиться внутри каталога проекта. См. страницу руководства для структуры проекта Xcode.

Вверх

Изменения силового поля системы частиц

Чтобы обеспечить согласованное поведение свойств Force Field, Unity теперь использует эталонную частоту кадров 30 кадров в секунду в качестве основы для моделирования. Если в вашем приложении используется другая частота кадров, это изменение может повлиять на следующие свойства силового поля:

  • Gravity
  • Rotation
  • Vector Fields

Если эти параметры ведут себя иначе, чем в более ранних версиях Unity, измените их значения.

Back to top

Изменения в графическом классе UGUI

UnityEngine.UI.Graphic больше не включает RequireComponent для атрибута CanvasRenderer. Чтобы обновить пользовательские классы, которые наследуются от Graphic и отображаются на холсте UGUI, добавьте следующий атрибут RequireComponent:

using UnityEngine; [RequireComponent(typeof (CanvasRenderer))] public class exampleClass: Graphic { ... }

Вверх

Настройте оптимизацию кода, чтобы продолжить использование покрытия кода

Введение оптимизации кода меняет то, как Пакет покрытия кода работает. Чтобы продолжить использование пакета Code Coverage с вашим проектом в версии 2020LTS, настройте оптимизацию кода для компиляции скриптов в режиме отладки. Режим отладки позволяет выполнять отладку C# и необходим для получения точных результатов покрытия кода.
Чтобы убедиться, что оптимизация кода находится в режиме отладки, вы можете выполнить одно из следующих действий:

  • Переключитесь в режим отладки в редакторе (в правом нижнем углу выберите значок ошибки > Переключиться в режим отладки).
  • С помощью CompilationPipeline API установите CompilationPipeline.codeOptimization = CodeOptimization.Debug.
  • Передайте -debugCodeOptimization в командную строку.

Вверх

Поддержка платформ AR/VR

В этом документе содержится руководство по обновлению существующей ARдополненной реальности (AR), использующей компьютерную графику или видео, наложенное поверх живая видеотрансляция для расширения обзора и создания взаимодействия с реальными и виртуальными объектами.
См. в проектах Словарь
/VR, использующих версии Unity, предшествующие выпускам Unity 2020. .

Включить AR/VR в настройках проекта

При обновлении существующего проекта до выпусков Unity 2020 и более поздних версий вы должны получить уведомление с указанием устаревшего XRзонта термин, охватывающий приложения виртуальной реальности (VR), дополненной реальности (AR) и смешанной реальности (MR). Устройства, поддерживающие эти формы интерактивных приложений, можно назвать устройствами XR. Подробнее
Интеграция See in Словарь
(ранее в настройках Player/XR) отключена.

Во время импорта ассетов до запуска редактора Unity.
Во время импорта ассетов до запуска редактора Unity.

Чтобы включить AR/VR, используйте плагин XRНабор кода, созданный вне Unity, который создает функциональные возможности в Unity. . В Unity можно использовать два типа подключаемых модулей: управляемые подключаемые модули (управляемые сборки .NET, созданные с помощью таких инструментов, как Visual Studio) и собственные подключаемые модули (библиотеки собственного кода для конкретной платформы). Подробнее
См. в Словарь
Управление в Настройки проектаОбширный набор настроек, которые позволяют настроить поведение физики, аудио, сети, графики, ввода и многих других областей вашего проекта. Подробнее
Просмотрите Словарь
и выберите целевые платформы.

Примечание. Перед установкой XR Plug-in Management рекомендуется исправить все ошибки сценария, связанные с обновлением.
Примечание. Мы рекомендуем исправить все ошибки сценария, связанные с обновлением, перед установкой XR Plug-in Management.

Виртуальная реальность

Платформа Построить цель Поставщик плагинов
Oculus Quest Android Oculus
Oculus Rift & Rift S Desktop Oculus
Windows Mixed Reality VR UWP Windows Mixed Reality

Дополненная реальность

Платформа Построить цель Поставщик плагинов
ARCore devices Android ARCore
ARKit devices iOSApple’s mobile operating system. More info
See in Словарь
ARKit
HoloLens UWP Windows Mixed Reality
Magic Leap One Lumin Magic Leap

Используйте оптимальные настройки проигрывателя

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

Виртуальная реальность

Platform Graphics API Стерео режим рендерингаСтандартный параметр материала шейдера, который позволяет выбрать, использует ли объект прозрачность, и если да, то какую. тип используемого режима наложения. Подробнее
См. в Словарь
Oculus Quest OpenGL ES 3.0 Multiview
Oculus Rift & Rift S DX11 Single Pass Instanced
Windows Mixed Reality VR DX11 Single Pass Instanced

Дополненная реальность

Платформа Графический API Режим стереофонического рендеринга
ARCore devices OpenGL ES 3.0 N/A
ARKit devices Metal N/A
HoloLens DX11 Single Pass Instanced
Magic Leap One OpenGL ES 3.2 Single Pass Instanced

Примечание. «Single Pass» больше не является параметром режима рендеринга, поскольку «Single Pass Instanced» более эффективен. Если вы переходите с «Single Pass» на «Single Pass Instanced», вам может потребоваться обновить пользовательские шейдерыпрограмму, которая работает на ГПУ. Подробнее
См. Словарь
в вашем проекте.

Конвейер рендеринга

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

Примечание. Если вы используете сторонние ресурсы и/или пользовательские шейдеры, вам может потребоваться обновить ресурсы с помощью шейдеров, совместимых с «Single Pass Instanced».

Камера в сцене

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

Если вы используете сторонний инструментарий для отслеживания камеры (OVRCameraRig и т. д.), убедитесь, что у вас установлена ​​последняя версия. Обратите внимание, что обновление до последних версий сторонних инструментов может привести к ошибкам скриптов. См. стороннюю документацию.

Если вы используете драйвер Tracked Pose Driver для отслеживания камеры, см. наше Руководство по миграции. .

Обновление сторонних наборов инструментов

Если вы используете какие-либо наборы инструментов, разработанные для поддерживаемых нами платформ (пакет интеграции Oculus, MRTK, MLTK), убедитесь, что вы используете последнюю версию. Обратите внимание, что обновление до последних версий сторонних инструментов может вызвать ошибки скриптов, связанные с обновлением, и вам может потребоваться обратиться к соответствующей документации по этим инструментам.

Часто задаваемые вопросы

Почему я не могу установить XR Plug-in Management в настройках проекта?

Возможны ошибки сценария, связанные с обновлением, которые необходимо исправить перед установкой XR Plug-in Management.

Почему OpenVR и Google Cardboard отсутствуют в управлении подключаемыми модулями XR?

Подключаемые модули OpenVR и Google Cardboard XR разрабатываются и поддерживаются Valve и Google соответственно. Ссылки на инструкции по установке для обеих платформ можно найти в нашей документации.

Поддерживается ли система ввода Unity?

Да, наша поддерживаемая платформа интеграции совместима с системой ввода Unity.

Поддерживаются ли универсальный конвейер рендеринга и конвейер рендеринга высокого разрешения?

Да, наша поддерживаемая платформа интеграции совместима как с Universal Render Pipeline, так и с High-Definition Render Pipeline.

Почему я не могу просмотреть XR Interaction Toolkit в диспетчере пакетов?

Набор инструментов XR Interaction Toolkit все еще находится на стадии предварительной версии. Для просмотра пакетов предварительной версииПакет предварительной версии находится в разработке и еще не готов к работе. Предварительный просмотр пакета может находиться на любой стадии разработки, от начальных до практически завершенных.
См. в Словарь
в 2020.1, его необходимо включить на вкладке Диспетчер пакетов в Настройки проекта. После включения предварительные пакеты будут отображаться в реестре Unity диспетчера пакетов.

Почему Play in Editor не работает у моего провайдера?

Поддержка воспроизведения в редакторе работает только с теми провайдерами, у которых есть отдельная поддержка для своего провайдера. Если поставщик не указан в автономном разделе выбора поставщика XR Plug-in Management UI(пользовательский интерфейс) для взаимодействия с вашим приложением. Подробнее
Посмотрите в Словарь
, тогда Воспроизвести в Редакторе не получится. Проверьте документацию вашего провайдера, так как они могут поддерживать некоторые другие способы интеграции поддержки Play в Editor.

Почему я не могу использовать режим рендеринга Single Pass?

Однократный проход больше не поддерживается в версии 2020.1, так как наиболее эффективен Single Pass Instanced. Если в вашем проекте используется «Single Pass» рендеринг, возможно, вам придется обновить шейдеры в вашем проекте. Также может потребоваться обновление сторонних библиотек, использующих пользовательские шейдеры для «Single Pass». Вы можете перейти с «Single Pass» на «multipass», и шейдеры должны работать, но для максимальной производительности мы рекомендуем выбрать «Single Pass Instanced».

Как настроить графический API?

Graphics API настраивается в настройках проигрывателянастройках, которые позволяют вам устанавливать различные параметры для конкретных игроков для окончательной игры, созданной Unity. . Подробнее
См. в Словарь
(«Edit» → «Project Settings» → «Player» ).

Как настроить режим стереорендеринга?

Режим рендеринга настраивается в настройках конкретного поставщика, вложенных в Управление подключаемыми модулями XR в настройках проекта.

Почему я получаю сообщения об ошибках с renderScale при использовании XR Settings API?

renderScale был удален и заменен на eyeTextureResolutionScale, но с версии 2019.3 это была задача обновления скриптов. Если вы выполняете обновление с версии Unity до 2019.3, вам придется вручную заменить renderScale на eyeTextureResolutionScale.

Почему ввод с моих контроллеров (например, нажатия кнопок) не распознается XR Interaction Toolkit?

Гарнитура должна быть обнаружена, прежде чем можно будет обнаружить какие-либо входные данные устройства. Одна из распространенных проблем при тестировании заключается в том, что многие люди оставляют свои гарнитуры на столе во время отладки своих взаимодействий. Контроллеры не будут распознаны, пока вы не наденете гарнитуру (или не активируется датчик приближения внутри гарнитуры). Если вы не получаете никаких данных с вашего устройства, наденьте гарнитуру после запуска приложения или закройте датчик приближения.

Можно ли использовать широкоугольную камеру на iPhone в приложениях AR Foundation?

ARKit не позволяет изменять FOV камеры.

Вверх

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