版本:Unity 6 (6000.0)
语言:英语
XR API 参考
创建 XR 提供程序

Unity XR SDK

Unity XR一个涵盖虚拟现实 (VR)、增强现实 (AR) 和混合现实 (MR) 应用程序的总称。支持这些形式的交互式应用程序的设备可以称为 XR 设备。 更多信息
请参阅 术语表
SDK 面向希望开发自己的 XR 提供程序以与 Unity 配合使用的专业用户。要下载 XR SDK,您必须在 此页面 上注册访问权限。

XR SDK 包允许多个后端(称为“提供程序”)在 Unity 中实现单个引擎功能(称为“子系统”)。用户应用程序可以在运行时选择和激活提供程序。

子系统

单个子系统包含

  • 面向开发人员的 C# 接口
  • 多个后端(提供程序)通过动态库实现的本地接口
  • 处理与 C# 接口、本地接口和引擎其余部分通信的通用引擎代码

Subsystem diagram

子系统描述符

子系统描述符是有关子系统的元数据,可以在加载或初始化子系统之前进行检查。它来自清单文件,并通过 C# 接口访问。Create 方法激活子系统,并向用户的 脚本一段代码,允许您创建自己的组件,触发游戏事件,随着时间的推移修改组件属性,并以您喜欢的任何方式响应用户输入。 更多信息
请参阅 术语表
提供其实例。

有关更多信息,请参阅 子系统的运行时发现和激活 页面。

子系统实例

当在子系统描述符上调用 Create 时,这将创建一个子系统实例。脚本代码与这些实例交互以与子系统通信。子系统本身有自己的生命周期:它可以启动、停止和关闭。

提供程序

提供程序是子系统的本地实现。一个子系统可以有多个提供程序。一些子系统可以允许多个提供程序同时处于活动状态,但其他子系统可能相互排斥。

Provider diagram
提供程序图

提供程序符合 Unity 本地插件接口,在顶部构建了一些额外的生命周期支持。入口点是 UnityPluginLoad 方法。从那里,提供程序必须向其打算实现的所有子系统注册。

extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API
UnityPluginLoad(IUnityInterfaces* unityInterfaces)
{
    s_XrDisplay = unityInterfaces->Get<IUnityXRDisplayInterface>();
    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...
}
XR API 参考
创建 XR 提供程序