Unity XRОбщий термин, охватывающий виртуальную реальность (VR), дополненную реальность (AR) и смешанную реальность (MR). Приложения. Устройства, поддерживающие эти формы интерактивных приложений, можно назвать устройствами XR. Подробнее
См. в Словарь SDK предназначен для пользователей-специалистов, которые хотят разработать собственный XR. поставщиков, которые работают с Unity. Чтобы загрузить XR SDK, необходимо зарегистрироваться на этой странице.
Пакет XR SDK позволяет нескольким бэкэндам (называемым «поставщиками») реализовывать одну функцию ядра (называемую «подсистемой») в Unity. Пользовательские приложения могут выбирать и активировать поставщиков во время выполнения.
Подсистемы
Одна подсистема состоит из:
- Интерфейс C# для разработчиков
- Собственный интерфейс, реализуемый несколькими бэкэндами (поставщиками) через динамические библиотеки
- Общий код движка, который обрабатывает взаимодействие с интерфейсом C#, собственным интерфейсом и остальной частью движка.
Дескриптор подсистемы
Дескриптор подсистемы — это метаданные о подсистеме, которые можно проверить перед загрузкой или инициализацией подсистемы. Это происходит из файла манифеста и доступно через интерфейс C#. Метод Create
активирует подсистему и предоставляет ее экземпляр для скриптов пользователя Фрагмент кода, который позволяет вам создавать свои собственные Компоненты, запускать игровые события, изменять свойства Компонентов с течением времени и реагировать на ввод данных пользователем любым удобным для вас способом. Подробнее
См. в Словарь.
Дополнительную информацию см. на странице Обнаружение и активация подсистем во время выполнения.
Экземпляр подсистемы
Когда Create
вызывается для дескриптора подсистемы, создается экземпляр подсистемы. Код сценария взаимодействует с этими экземплярами для связи с подсистемой. Сама подсистема имеет свой жизненный цикл: ее можно запускать, останавливать и выключать.
Поставщик
Поставщик – это встроенная реализация подсистемы. У одной подсистемы может быть несколько провайдеров. Некоторые подсистемы могут позволять нескольким поставщикам быть активными одновременно, но другие могут быть взаимоисключающими.
Поставщики соответствуют нативному интерфейсу подключаемых модулей Unity с некоторой дополнительной поддержкой жизненного цикла. Точкой входа является метод UnityPluginLoad
. Оттуда поставщик должен зарегистрироваться во всех подсистемах, которые он намеревается внедрить.
extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API
UnityPluginLoad(IUnityInterfaces* unityInterfaces)
{
s_XrDisplay = unityInterfaces->Get();
UnityLifecycleProvider displayLifecycleHandler =
{
NULL, // This can be any object you want to be passed as userData to the following functions
&Lifecycle_Initialize,
&Lifecycle_Start,
&Lifecycle_Stop,
&Lifecycle_Shutdown
};
s_XrDisplay->RegisterLifecycleProvider("Provider Plugin Name", "Display0", &displayLifecycleHandler);
// Register with other subsystems...
}