XRApi
XRApi提供了运行时对XR的管理接口,用于控制和管理 XR(扩展现实,包含 VR/AR)系统中的各种功能模块,尤其是渲染、输入、凝视点(Gaze)、追踪(Tracking)以及姿态控制(Pose)等。
接口介绍
| 接口名称 | 返回值 | 接口作用 |
|---|---|---|
| SetDataSource | void | 批量设置数据来源 |
| ReplaceRenderDataSource | void | 设置渲染数据来源 |
| ReplaceInputDataSource | void | 设置输入数据来源 |
| SetControllerDataSource | void | 设置控制输入数据来源 |
| SetGazeDefaultDistance | void | 设置注视点默认距离 |
| SetGazeVisible | void | 设置注视点是否可见 |
| SetEnableNXRGaze | void | 设置是否开启注视点 |
| GetGazeImage | NActorPtr | 获取注视点图片 |
| GetGazeDistance | float | 获取注视点距离 |
| GetTrackingState | EXRTrackingState | 获取设备追踪状态 |
| SetHmdRayCastEnable | void | 设置头控追踪开启 |
| SetControllerRayCastEnable | void | 设置手柄追踪开启 |
| SetGazeColor | void | 设置注视点颜色 |
| SetGazeSize | void | 设置注视点大小 |
| SetTrackingPosition | Bool | 设置追踪位置 |
| GetDeviceTransform | Transform | 获取当前设备位置 |
| LockHeadPose | void | 锁定头部姿态 |
| UnlockHeadPose | void | 解锁头部姿态 |
| RecenterHeadPose | void | 重置头部姿态 |
| RecenterControllerPose | void | 重置手柄姿态 |
| SetIgnoreSysDismissControllerN | void | 设置忽略系统菜单显示时隐藏自身手柄 |
| GetRuntimePlatform | EXRRuntimePlatform | 获取当前运行平台 |
| SetEnableXROverlayMode | void | 设置开启XR OverLay |
| IsEnableXROverlayMode | bool | 获取XROverLay状态 |
| IsSupportRenderLayer | bool | 设备是否支持RenderLayer |
| CreateRenderLayer | XRLayerRef | 创建RenderLayer |
| DestroyRenderLayer | void | 销毁RenderLayer |
| DestroyRenderLayerAll | void | 销毁所有RenderLayer |
| GetRenderLayer | XRLayerRef | 获取RenderLayer |
| GetRenderLayerList | std::vector<XRLayerRef> | 获取所有RenderLayer |
| GetXROverlayRenderLayer | XRLayerRef | 获取Overlay模式RenderLayer |
| GetViewMode | XRViewMode | 获取视图状态 |
| GetTargetViewportScissorByArea | XRTargetViewInfo | 通过位置获取目标视口 |
| GetTargetViewportScissorByEye | XRTargetViewInfo | 通过标签获取目标视口 |
| GetHmdPosition | const Vector3& | 获取头部位置 |
| GetHmdRotation | const Quaternion& | 获取头部旋转 |
| GetEyeRenderTargetSize | Vector2i | 获取渲染视口尺寸 |
| SetEnableInteractive | bool | 设置是否开启交互 |
| IsEnableInteractive | bool | 获取是否支持交互 |
| IsSupportPassThrough | bool | 获取是否支持PassThrough |
| SetEnabledPassThrough | bool | 设置是否开启PassThrough |
| IsEnabledPassThrough | bool | 获取是否开启PassThrough |
接口示例
获取当前XR注视点,更大大小,并且更换图片:
cpp
void NewScript1::Start()
{
auto m_GazeActor =XRApi::GetGazeImage();
auto imageComp = m_GazeActor->GetImageView();
auto newTexture = NResources::LoadTextureFromFile("Assets/Textures/ceshi.png");
imageComp->SetTexture(newTexture);
XRApi::SetGazeSize(EXRGazeSize::XRGS_LARGE);
}
