Чтобы настроить проект Unity для XR, выполните следующие действия:
- Откройте окно Настройки проекта (меню: Правка > Настройки проекта) и выберите Управление подключаемыми модулями XR.
- Нажмите Установить XR Управление подключаемым модулем, если пакет еще не установлен. Его также можно установить из окна Диспетчера пакетов.
- После завершения установки выберите Подключаемый модульНабор кода, созданный вне Unity, который создает функциональные возможности в Единство. В Unity можно использовать два типа подключаемых модулей: управляемые подключаемые модули (управляемые сборки .NET, созданные с помощью таких инструментов, как Visual Studio) и собственные подключаемые модули (библиотеки собственного кода для конкретной платформы). Подробнее
См. в Словарь поставщика, чтобы включить его для соответствующего построить цель. Сделать это:- Выберите цель сборки (например, Android).
- Установите флажок слева от каждого подключаемого модуля, который вы хотите использовать для этой цели сборки.
- После загрузки подключаемого модуля он отображается в левой панели навигации под XRобобщающим термином, охватывающим виртуальную реальность. (VR), приложения дополненной реальности (AR) и смешанной реальности (MR). Устройства, поддерживающие эти формы интерактивных приложений, можно назвать устройствами XR. Подробнее
См. в разделе Словарь Управление подключаемыми модулями. Щелкните подключаемый модуль, чтобы настроить его параметры для каждой цели сборки. - Чтобы настроить отслеживание, в главном меню Unity выберите GameObject > XR > Добавить установку XR.
Примечания:
- Выбор поставщика подключаемого модуля XR активирует этот поставщик для соответствующей цели сборки. Unity автоматически устанавливает пакет подключаемого модуля, если он еще не установлен.
- Отключение подключаемых модулей не приводит к автоматическому удалению существующих пакетов. Удалите подключаемые модули поставщиков из Диспетчера пакетов.
- Список сторонних подключаемых модулей см. в [VROverview](Начало работы с VR-разработкой).
Настройка отслеживания в среде подключаемого модуля XR
Неявная камераКомпонент, который создает изображение определенной точки обзора в вашей сцене. Вывод либо рисуется на экране, либо фиксируется в виде текстуры. Подробнее
Отслеживание See in Словарь, использовавшееся в версиях Unity до 2019.3, удалено. в новой структуре подключаемого модуля XR. Неявное отслеживание работало для простых приложений, предназначенных только для HMD, но не было таким интуитивно понятным при использовании в сочетании с контроллерами и другими взаимодействиями.
Чтобы убедиться, что отслеживание XR правильно настроено с помощью платформы подключаемого модуля XR, выполните следующие действия.
Начиная с новой сцены
Приведенные ниже инструкции применяются, если вы начинаете с новой СценыСцена содержит окружение и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
См. в Словарь или в Сцене, отвечающей следующим условиям: р>
- В сцене есть только одна камера, и эта камера помечена как основная.
- Камера в сцене находится в корне иерархии.
В главном меню Unity выберите GameObject > XR > Add XR Rig. Это попытка преобразовать вашу новую сцену в сцену, которая правильно поддерживает XR Plug-in Framework.
Если вы не видите никаких ошибок в журнале консоли, теперь вы сможете нажать Воспроизвести в своей сцене и увидеть, как камера отслеживает устройство, которое вы настроили в XR. Пакет управления подключаемыми модулями.
Если Unity не может правильно перенести вашу сцену, в журнале консоли появится сообщение об ошибке. Следуйте инструкциям в разделе Начало существующей сцены ниже.
Начиная с существующей сцены
Миграция из существующей сцены требует дополнительных действий по сравнению с миграцией пустой сцены. В результате существуют разные параметры в зависимости от того, как настроена ваша сцена. Общая цель состоит в том, чтобы отслеживать сцену так же, как это было до перехода на XR Plug-in Framework.
Определите тип сцены
Найдите камеру в вашей сцене, которая помечена как основная камера. Unity использует эту камеру для рендеринга на HMD или другое основное устройство.
Если основная камера GameObjectосновной объект в сценах Unity, который может представлять персонажей, реквизит, декорации, камеры, путевые точки , и более. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
См. в Словарь:
- Находится в корне иерархии вашего проекта, следуйте инструкциям по переносу простой сцены.
- Не находится в корне иерархии вашего проекта, следуйте инструкциям по переносу сложной сцены.
Перенос простой сцены
Чтобы перенести простую сцену, выполните следующие действия.
1. Создайте экземпляр префаба XR Rig.
Миграция камеры, которая ранее находилась в корне иерархии сцен, позволяет заменить существующую камеру на установку XR путем создания PrefabТип актива, который позволяет хранить GameObject с компонентами и свойствами. Префаб действует как шаблон, из которого вы можете создавать новые экземпляры объектов в сцене. Подробнее
См. Словарь, который содержит этот пакет.
Вы можете найти этот префаб в папке Packages/XR Legacy Input Helpers/Prefabs
. Перетащите префаб в иерархию сцен, чтобы создать его новый экземпляр.
2. Переместите XR Rig в соответствии с местоположением камеры.
Теперь, когда у вас есть экземпляр префаба XR Rig, вам нужно настроить игровой объект XR Rig, чтобы результирующие положения камеры были правильными при запуске вашего приложения.
Измените положение и поворот игрового объекта XR Rig, чтобы он соответствовал положению текущей основной камеры. Если вы применяете преобразование масштаба к основной камере, убедитесь, что вы также применяете это масштабирование к игровому объекту XR Rig. При масштабировании XR Rig настоятельно рекомендуется использовать одинаковый масштаб по всем трем осям.
3. При необходимости повторите изменение позиции.
Если основная камера в неперенесенной сцене находится над полом (ее компонент Y > 0,0f), вам необходимо воспроизвести это изменение положения. Вы можете сделать это несколькими способами, в зависимости от исходной позиции, которую должно было воспроизвести изменение.
3.1 – Uplift для имитации роста пользователя
Если предыдущая основная камера была поднята над полом, чтобы имитировать рост пользователя, и приложение использует источник отслеживания устройства (иногда называемый «стационарным» режимом отслеживания), Camera Offset выполняет это дополнительное повышение. В противном случае см. следующий раздел.
Чтобы настроить камеру таким образом, чтобы она поднималась вертикально, когда приложение используется в режиме источника отслеживания устройства, установите следующие параметры для компонента Смещение камеры в игровом объекте XR Rig:
Вариант | Значение |
---|---|
Requested Tracking Mode | Устройство |
Camera Y Offset | Установите этот параметр на высоту, на которую поднимается существующая основная камера, чтобы имитировать рост пользователя. |
После настройки этих параметров измените положение Y игрового объекта XR Rig на то, что вы считаете «полом» в своем приложении (обычно 0,0f). Компонент Camera Offset при необходимости добавляет дополнительное возвышение.
3.2. Подъем указывает положение камеры
Если ваша неперенесенная сцена использует исходную точку отслеживания пола (исторически называемую режимом отслеживания «в масштабе комнаты»), а положение основной камеры представляет собой начальную точку пользователя без учета его высоты (то есть камера эффективно на логическом «этаже»), выполните следующие действия, чтобы правильно перенести сцену:
- Переместите XR Rig в соответствии с текущим положением и вращением основной камеры в мировом пространстве Unity.
- Если приложение использует исходную точку отслеживания пола, установите для параметра Запрошенный режим отслеживания в компоненте Смещение камеры значение Этаж. Это гарантирует правильное смещение камеры по вертикали.
- Если приложение не использует исходную точку отслеживания пола, установите для параметра Запрошенный режим отслеживания в компоненте Смещение камеры значение по умолчанию. Это применяет правильное поведение независимо от режима отслеживания устройств, с которого запускается приложение.
- Если вы ранее использовали другой компонент для перемещения камеры по вертикали и обработки разницы между точками отсчета устройства и пола, вам может потребоваться отключить или изменить этот компонент, чтобы разные компоненты не перемещали камеру неправильно несколько раз.< /li>
Затем удалите игровой объект Main Camera из экземпляра XR Rig и сделайте существующий игровой объект Main Camera родительским для GameObject Camera Offset.
Убедитесь, что положение и вращение игрового объекта основной камеры равны 0,0,0. Вместо изменения положения камеры всегда меняйте положение игрового объекта XR Rig. Кроме того, убедитесь, что все ссылки от GameObjects или компонентов на вашу основную камеру по-прежнему верны.
5. Настройте свой проект для XR
См. раздел Настройка проекта Unity для XR выше.
6. Нажмите «Воспроизвести»
Теперь, когда ваша сцена успешно перенесена, нажмите Воспроизвести и убедитесь, что начальное местоположение камеры такое же, как и до переноса на XR Plugin Framework. Если это не так, см. раздел «Устранение неполадок» ниже.
Перенос сложной сцены
Если ваша текущая сцена использует неявное отслеживание камеры из устаревшей системы VR, а основная камера является частью иерархии GameObject, выполните следующие действия, чтобы перенести устаревшую систему VR-отслеживания на XR Plugin Framework.
Неявное обновление камеры будет обновлять локальное преобразование игрового объекта основной камеры дважды в каждом кадре, что заставит игровой объект основной камеры перемещаться относительно положения, масштаба и поворота иерархии, в которой он существовал.
В этом сценарии у вас есть два варианта переноса сцены:
- Оставьте существующую иерархию на месте и добавьте компоненты, чтобы включить отслеживание в текущей иерархии
- Перенесите существующую иерархию для использования структуры XR Rig.
Обычно рекомендуется оставить существующую иерархию, если в вашей сцене есть функциональные возможности, основанные на этой иерархической структуре. Если у вас относительно простая конфигурация, вы можете перейти непосредственно на XR Rig.
Оставить на месте
Этот метод включает минимальное количество изменений в существующей иерархии сцен, чтобы включить отслеживание в Unity. Это включает в себя добавление драйвера отслеживаемой позы к основной камере в вашей сцене. Это гарантирует, что любая другая функциональность, для которой требуется ваша текущая иерархия GameObject, продолжит функционировать как прежде.
1. Найдите свою основную камеру и добавьте к ней драйвер отслеживания позы
Найдите основную камеру в сцене.
Добавьте драйвер отслеживаемой позы, используя те же настройки, что и основная камера XR Rig. На снимке экрана ниже показаны эти настройки:
Проделайте это для всех основных камер в вашей сцене. Если вам нужно отслеживать другие устройства в вашей сцене, см. настройки драйвера Tracked Pose Driver для правильных параметров для вашего варианта использования.
2. Настройте свой проект для XR
См. раздел Настройка проекта Unity для XR выше.
3. Нажмите «Воспроизвести»
Теперь, когда ваша сцена успешно перенесена, нажмите Воспроизвести и убедитесь, что начальное местоположение камеры такое же, как и до переноса на XR Plugin Framework. Если это не так, см. раздел Устранение неполадок ниже.
Переход на XR Rig
Поскольку существует бесконечное количество возможных иерархий, Unity не может предоставить конкретные шаги для переноса вашей текущей иерархии сцен для использования XR Rig. См. объяснение XR Rig документации пакета Legacy Input Helpers, чтобы понять, для чего предназначен XR Rig. Это позволит вам сопоставить существующую иерархию с концепциями XR Rig.
Чтобы настроить сцену для использования управления XR, см. раздел Настройка проекта Unity для XR выше.
Если проблемы не устранены, см. раздел Устранение неполадок ниже.
Устранение неполадок
Проблема | Возможные причины |
---|---|
Camera is too high in the Scene | Правильно ли установлен запрошенный режим отслеживания компонента «Смещение камеры»?
Не слишком ли велико значение смещения камеры по оси Y? |