Unity XR一个涵盖虚拟现实 (VR)、增强现实 (AR) 和混合现实 (MR) 应用程序的总称。支持这些形式的交互式应用程序的设备可以称为 XR 设备。 更多信息
请参阅 术语表 SDK 面向希望开发自己的 XR 提供程序以与 Unity 配合使用的专业用户。要下载 XR SDK,您必须在 此页面 上注册访问权限。
XR SDK 包允许多个后端(称为“提供程序”)在 Unity 中实现单个引擎功能(称为“子系统”)。用户应用程序可以在运行时选择和激活提供程序。
单个子系统包含
子系统描述符是有关子系统的元数据,可以在加载或初始化子系统之前进行检查。它来自清单文件,并通过 C# 接口访问。Create
方法激活子系统,并向用户的 脚本一段代码,允许您创建自己的组件,触发游戏事件,随着时间的推移修改组件属性,并以您喜欢的任何方式响应用户输入。 更多信息
请参阅 术语表 提供其实例。
有关更多信息,请参阅 子系统的运行时发现和激活 页面。
当在子系统描述符上调用 Create
时,这将创建一个子系统实例。脚本代码与这些实例交互以与子系统通信。子系统本身有自己的生命周期:它可以启动、停止和关闭。
提供程序是子系统的本地实现。一个子系统可以有多个提供程序。一些子系统可以允许多个提供程序同时处于活动状态,但其他子系统可能相互排斥。
提供程序符合 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...
}