Примечание. Следуйте советам в этом разделе в порядке выпуска. Например, если вам нужно обновить проект с версии 2018 до версии 2020, прочтите руководства по обновлению версии 2019, чтобы узнать, есть ли какие-либо изменения, которые вам нужно внести, прежде чем читать руководства по обновлению версии 2020.
На этой странице перечислены изменения в версии Unity 2020 LTS, которые могут повлиять на существующие проекты при обновлении с версии 2019 до 2020 LTS.
Обратите внимание, что 2020LTS также известен как 2020.3.
Контур страницы
- Все вершины меша трансформируются для лучшей развертки UV
- Хэши всех наборов ресурсов разные, поэтому все пакеты создаются
- Пакет многопользовательского HLAPI не устанавливается автоматически при обновлении проекта
- Улучшено запекание LOD с помощью Progressive Lightmapper
- Ключевые изменения Adaptive Performance
- Создание проекта Xcode
- Изменения силового поля системы частиц
- Изменения в графическом классе UGUI
- Настройте оптимизацию кода, чтобы продолжить использование покрытия кода
- Поддержка платформ AR/VR
Все вершины сетки трансформируются для лучшей развертки 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.
Чтобы обновить уровень детализации в вашей сцене, очистите запеченную карту освещения, а затем создайте ее заново. Для этого:
- В редакторе Unity откройте Window > Rendering > Lighting Settings.
- В Debug Settings,щелкните раскрывающееся меню на кнопке Generate Lighting, затем нажмите Clear Baked Data.
- Нажмите на 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, измените их значения.
Изменения в графическом классе 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) отключена.
Чтобы включить AR/VR, используйте плагин XRНабор кода, созданный вне Unity, который создает функциональные возможности в Unity. . В Unity можно использовать два типа подключаемых модулей: управляемые подключаемые модули (управляемые сборки .NET, созданные с помощью таких инструментов, как Visual Studio) и собственные подключаемые модули (библиотеки собственного кода для конкретной платформы). Подробнее
См. в Словарь Управление в Настройки проектаОбширный набор настроек, которые позволяют настроить поведение физики, аудио, сети, графики, ввода и многих других областей вашего проекта. Подробнее
Просмотрите Словарь и выберите целевые платформы.
Виртуальная реальность
Платформа | Построить цель | Поставщик плагинов |
---|---|---|
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 камеры.