7 API接口函数一览¶
7.1 HMD(头戴显示器)通用函数库¶
SDK支持下图中红点标记的HMD通用函数,详细用法说明请参考UE4 官方文档 。

图7.1 SDK已支持通用函数
其中:
- Reset Orientation and Position节点,仅支持重置正方向的功能,函数节点中的Yaw参数值不起作用。
- 使用Get HMDWorn State,需要在项目设置PicoXR Settings菜单里,勾选“Enable PSensor”选项。
7.2 HMD(头戴显示器)专用函数库¶
SDK以蓝图节点的形式提供了相应的API,在事件图表中单击鼠标右键,进入PXR项目,在PXRHMD子项中,即可看到这些API,如下图所示。

图7.2 HMD专用函数库
PXR Get Field Of View¶
通过该蓝图节点可以获取头戴的水平方向FOV和垂直方向FOV。
蓝图:
输入:无
输出:
float类型:
- HFOVIn Degrees:水平方向的FOV,单位为角度
- VFOVIn Degrees:垂直方向的FOV,单位为角度
返回值:
bool类型:
- true:获取成功
- false:获取失败
PXR Does Support Positional Tracking¶
通过该蓝图节点可以判断头戴是否支持位置追踪,支持位置追踪则为6DOF模式,不支持位置追踪则为3DOF模式。
蓝图:
输入:无
输出:无
返回值:
bool类型:
- true:支持位置追踪(6DOF)
- false:不支持位置追踪(3DOF)
PXR Get Current Display Frequency¶
通过该蓝图节点可以获取当前屏幕刷新率,目前支持72hz、90hz、120hz三种屏幕刷新率,默认为72hz,90hz、120hz等模式需要在设置中的LAB标签栏下,选择对应模式。
蓝图:
输入:无
输出:无
返回值:
Float类型:
- 0:获取刷新率失败
- 72:72hz模式
- 90:90hz模式
- 120:120hz模式
PXR Get HMDWorn State¶
通过该蓝图节点可以获取当前头戴显示器的状态,包含了穿戴(Worn)、未穿戴(NotWorn)、Unknown(未知)三种状态。需要在项目设置PicoXR Settings菜单里,勾选“Enable PSensor”选项,若未勾选,则会返回Unknown状态。
蓝图:
输入:无
输出:无
返回值:
枚举类型:
- EHMDWornState:
- Unknown:Enable PSensor选项没有打开,或者PSensor检测失败。
- Worn:Enable PSensor选项打开,并且头戴显示器的PSensor传感器前方有遮挡。
- NotWorn:Enable PSensor选项打开,并且头戴显示器的PSensor传感器前方没有遮挡。
PXR Reset HMDSensor¶
通过该蓝图节点可以校准头戴的位置和方向,与Reset Orientation and Position接口的作用类似,将玩家的方向重置为初始正方向,位置重置为初始位置。
蓝图:
输入:无
输出:无
返回值:
bool类型:
- true:校准成功
- false:校准失败
PXR Set CPUAndGPULevels¶
通过该蓝图节点可以设置头戴上 CPU 和 GPU 的时钟频率,CPU 和 GPU 级别可以设置为 1、2、3、4、5五个预设级别。值为 1 会导致 CPU 或 GPU 以最慢的时钟速率运行,这是最节能的。从1-5会使 CPU 或 GPU 时钟速率逐渐加快从而提高性能,但是会产生更多的热量并使电池电量消耗的更快。
蓝图:
输入:
int类型:
- CPU Level: CPU时钟频率设置,允许设置int型: 1 to 5。
- GPU Level: GPU时钟频率设置,允许设置int型: 1 to 5。
输出:无
返回值:无
PXR IPDChangedDelegates¶
通过该蓝图节点可以绑定瞳距改变回调事件,通过绑定回调事件,获取新的瞳距。
蓝图:
输入:
delegate类型:
- On Pico XRIPDChanged:绑定瞳距改变回调事件,如下图所示:
回调事件参数:
float类型:
- Ipd:当前瞳距数值
输出:无
返回值:无
PXR Get Event Manager¶
通过该蓝图节点可以获取当前回调事件管理器,通过事件管理器可以为委托绑定回调事件,当前支持绑定手柄连接委托(Device Connect Changed Delegate),IPD变化委托(Ipd Changed Delegate),长按Home键委托(Long Home Pressed Delegate),刷新率变化委托(Refresh Rate Changed Delegate),恢复(Resume Delegate)委托。
蓝图:
输入:无
输出:无
返回值:
对事件管理器单例的引用。
各个委托的绑定方法如下:
Device Connect Changed Delegate¶
通过该委托可以绑定手柄连接状态变化事件,并且通过参数获取变化状态,例如Handness为0,State为1,则表示左手柄连接。
蓝图
![]()
回调事件参数:
- int类型:
- Handness:手柄标识:
- 0:左手柄
- 1:右手柄
- State连接状态:
- 0:断开连接
- 1:建立连接
- Handness:手柄标识:
Refresh Rate Changed Delegate¶
通过该委托可以绑定刷新率改变事件,并且通过回调事件参数获取变化后的新刷新率。
蓝图

回调事件参数:
- float类型:
- New Rate:新刷新率
PXR Set See Through Background¶
通过该蓝图节点可以设置使用相机画面做背景。注:当前该接口在Unreal 4.24、4.25版本中不可用,4.26、4.27版本中可用。
蓝图:
输入:
bool类型:
- true:启用相机画面为背景
- false:关闭相机画面为背景
输出:无
返回值: int类型:
- 0:设置成功
- -1:设置失败
PXR Get Dialog State¶
通过该蓝图节点可以获取安全区的状态。
蓝图:
输入:无
输出:无
返回值:
枚举类型:
- State(EPicoXRBoundaryState):
- GobackDialog:头戴离开安全区时显示,回到安全区内消失
- ToofarDialog:头戴离开安全区超过了3米
- LostDialog:6dof丢失无原因
- LostNoReason:6dof丢失无原因
- LostCamera:摄像头校准参数错误
- LostHighLight:环境过亮
- LostLowLight:环境过暗
- LostLowFeatureCount:环境特征点少
- LostReLocation:正在恢复定位追踪
- LostInitialization:正在初始化
- LostNoCamera:摄像头数据错误
- LostNoIMU:IMU数据错误
- LostIMUJitter:IMU数据抖动
- LostUnknown:未知原因
- NothingDialog:定位追踪关闭时,无Dialog
7.3 Input(输入)相关函数库¶
SDK以蓝图节点的形式提供了相应的API,在事件图表中单击鼠标右键,进入PXR项目,在PXRInput子项中,即可看到这些API,如下图所示:

图 7.3 Input相关函数库
PXR Get Controller Device¶
通过该蓝图节点可以获取当前已连接手柄的类型。
蓝图

输入: 无
输出:
枚举类型:
- Controller Type(EPicoXRControllerDeviceType):
- UnKnown:未知控制器
- Neo3:Pico Neo3控制器
返回值:无
PXR Get Controller Power¶
通过该蓝图节点可以获取当前手柄的电量。
蓝图

输入:
枚举类型:
- Controller Type(EPicoXRControllerType):
- Pico Neo LeftHand:左手柄
- Pico Neo RightHand:右手柄
输出:
int类型:
- Power:指定手柄的手柄电量(范围:1-5)
返回值:
bool类型:
- true:获取成功
- false:获取失败
PXR Get Controller Connection State¶
通过该蓝图节点可以获取指定手柄的连接状态。
蓝图

输入:
- 枚举类型:
- Controller Type(EPicoXRControllerType):
- Pico Neo LeftHand:左手柄
- Pico Neo RightHand:右手柄
- Controller Type(EPicoXRControllerType):
输出:
bool类型:
- true:已连接
- false:未连接
返回值:
bool类型:
- true:获取成功
- false:获取失败
PXR Vibrate Controller¶
通过该蓝图节点可以控制手柄震动。
蓝图

输入:
枚举类型:
- Controller Type(EPicoXRControllerType):
- Pico Neo LeftHand:左手柄
- Pico Neo RightHand:右手柄
float类型:
- Strength:震动强度(范围:0-1)
int类型:
- Time:震动时间(单位ms,范围:0-65535)
输出:无
返回值:
bool类型:
- true:设置成功
- false:设置失败
PXR Get Controller Acceleration¶
通过该蓝图节点可以获取指定手柄的加速度。
蓝图

输入:
- 枚举类型:
- Controller Type(EPicoXRControllerType ):
- Pico Neo LeftHand:左手柄
- Pico Neo RightHand:右手柄
- Controller Type(EPicoXRControllerType ):
输出:
- FVector类型:
- Acceleration:手柄加速度(单位:cm/s)
返回值:
- bool类型:
- true:获取成功
- false:获取失败
PXR Get Controller Angular Velocity¶
通过该蓝图节点可以获取指定手柄的角速度。
蓝图

输入:
枚举类型:
- Controller Type(EPicoXRControllerType):
- Pico Neo LeftHand:左手柄
- Pico Neo RightHand:右手柄
输出:
FVector类型:
- Angular Velocity:手柄角速度(rad/s)
返回值:
- bool类型:
- true:获取成功
- false:获取失败
PXR Get Controller Linear Velocity¶
通过该蓝图节点可以获取指定手柄的线速度。
蓝图

输入:
枚举类型:
- Controller Type(EPicoXRControllerType):
- Pico Neo LeftHand:左手柄
- Pico Neo RightHand:右手柄
输出:
- FVector类型:
- Linear Velocity:手柄线速度(cm/s)
返回值:
bool类型:
- true:获取成功
- false:获取失败
PXR Set Controller Origin Offset¶
通过该蓝图节点可以设置手柄原点坐标偏移。
蓝图

输入:
枚举类型:
- Controller Type(EPicoXRControllerType):
- Pico Neo LeftHand:左手柄
- Pico Neo RightHand:右手柄
Vector类型:
- Offset:手柄原点坐标偏移量(单位:米)
输出:无
返回值:无
PXR Get Controller Predicted Location and Rotation¶
通过该蓝图节点可以预测一定时间之后,指定手柄的位置和旋转。
蓝图

输入:
枚举类型:
- Device Hand(EControllerHand):
- Left:左手柄
- Right:右手柄
- float类型:
- Predicted Time:预测时间(范围:0-100ms)
输出:
FVector类型:
- Location:根据预测时间计算得出的手柄位置
FRotator类型:
- Rotation:根据预测时间计算得出的手柄旋转
返回值: 无
PXR Get Controller Enable Homekey¶
通过该节点可以判断手柄是否能接收Home键按键事件。
蓝图

输入: 无
输出: 无
返回值:
bool类型:
- true:启用接收Home键事件
- false:已关闭接收home键事件
7.4 Eye Tracking(眼球追踪)相关函数库¶
SDK以蓝图节点的形式提供了相应的API,在事件图表中单击鼠标右键,进入PXR项目,在PXRHMD子项中,即可看到这些API,如下图所示。注:在使用Eye Tracking相关API之前,请参考8.2 眼球追踪章节,进行相关设置

图 7.4 Eye Tracking相关函数库
PXR Get Eye Tracking Data¶
获取眼球追踪的数据(仅Neo3 Pro Eye支持,需在项目设置中勾选”Enable Eye Tracking”)。
蓝图

输入: 无
输出: 无
返回值:
结构体类型:
- FPicoXREyeTrackingData:
- int32型:LeftEyePoseStatus:当前左眼的数据状态
- 0:数据不可用
- -1:数据可用
- int32型:RightEyePoseStatus:当前右眼的数据状态
- 0:数据不可用
- -1:数据可用
- int32型:CombinedEyePoseStatus:当前左右眼混合的数据状态
- 0:数据不可用
- -1:数据可用
- FVector类型:CombinedEyeGazePoint:左右眼当前共同注视点的位置值
- FVector类型:CombinedEyeGazeVector:左右眼当前共同的注视方向(即从双眼的中间点到注视点的向量)
- float型:LeftEyeOpenness:获取左眼当前的睁闭程度
- 0.0:完全闭眼
- 1.0:完全睁眼
- float型:RightEyeOpenness:获取右眼当前的睁闭程度
- 0.0:完全闭眼
- 1.0:完全睁眼
- FVector类型:LeftEyePositionGuide:左眼当前的位置指引
- FVector类型:RightEyePositionGuide:右眼当前的位置指引
- FVector类型:FoveatedGazeDirection:注视点渲染(FFR的中心点)的视线方向
7.5 Foveation Rendering(注视点渲染)相关函数库¶
SDK以蓝图节点的形式提供了相应的API,在事件图表中单击鼠标右键,进入PXR项目,在PXRHMD子项中,即可看到这些API,如下图所示。注:在使用Foveation Rendering相关API之前,请参考8.3注视点渲染章节,进行相关设置

图 7.5 Foveation Rendering相关函数库
PXR Enable Foveation¶
通过该蓝图节点可以打开或者关闭注视点渲染。
蓝图

输入:
- bool类型:
- 勾选:true,打开注视点渲染
- 不勾选:false,关闭注视点渲染
输出: 无
返回值: 无
PXR Get Foveation Level¶
通过该蓝图节点可以获取当前注视点渲染(Foveation Rendering)等级。
蓝图

输入: 无
输出:
- 枚举类型:
- Foveation Level(EPicoXRFoveationLevel):
- Low
- Medium
- High
- TopHigh
- Foveation Level(EPicoXRFoveationLevel):
返回值:
- bool类型:
- true:获取成功
- false:获取失败
PXR Set Foveation Level¶
打包之后,可以通过蓝图节点动态的修改注视点渲染(Foveation Rendering)的等级(注:打包前,必须勾选“Enable FoveationRendering”开启注视点渲染功能)。
蓝图

输入:
枚举类型:
- Foveation Level(EPicoXRFoveationLevel):
- Low
- Medium
- High
- TopHigh
输出: 无
返回值:
bool类型:
- true:设置成功
- false:设置失败
PXR Set Foveation Parameter¶
通过该蓝图节点可以设置注视点渲染相关参数。除非开发者对“Foveation Rendering”技术有深入的了解,可以使用自定义参数来调整FFR优化细节,否则建议使用PXR Set Foveation Level接口,设置官方预定义Level。
蓝图:
输入:
- FVector2D类型:
- Foveation Gain Value:X/Y方向Gain值影响像素密度,Gain数值越高,像素密度越低(值的设定范围为0-100)
- float类型:
- Foveation Area Value: 注视点周围原分辨率范围,值越大中心清晰区域越大(值的设定范围为0-100)
- Foveation Minimum Value:最低像素密度值,像素密度大于等于Foveation Minimum Value 。(值的设定范围为0-100)
输出:无
返回值:
- bool类型:
- true:设置成功
- false:设置失败
7.6 应用版权保护函数库¶
Pico Entitlement Verify App Delegate¶
通过该蓝图节点可以获取版权验证结果Code。
蓝图

输入:
- delegate类型:
- On Verify App Callback:绑定版权验证回调事件,如下图所示:

回调事件参数:
- int型:验证结果Code:
- 0:为失败
- -2:服务不存在
- -3:服务绑定失败
- -4:捕获异常代码
- -5:超时未收到服务返回值
- 10:包名缺失
- 11:APPID缺失
- 13:包名和APPID不匹配
- 20:用户未登录
- 21:用户未购买
- 31:未查询到此应用
- 32:购买SN号与本机SN号不匹配
- int型:验证结果Code:
输出: 无
返回值: 无
7.7 SplashScreen相关函数库¶
SDK以蓝图节点的形式提供了相应的API,在事件图表中单击鼠标右键,进入PXR项目,在PXRHMD子项中,即可看到这些API,如下图所示。注:在使用SplashScreen相关API之前,请参考8.7 SplashScreen章节,进行相关设置

图 7.6 SplashScreen相关函数库
PXR Enable Auto Show Splash Screen¶
设置是否自动显示SplashScreen。
蓝图

输入:
bool类型:
- Enable:
- 勾选:true,设置自动显示
- 不勾选:false,设置不自动显示
- Enable:
输出: 无
返回值: 无
PXR Add Splash Screen¶
添加SplashScreen,并设置SplashScreen属性。注:在Unreal 4.26中,通过Setting以及该接口添加Splash存在已知问题,建议在Unreal 4.26及以后版本,使用Unreal提供的标准蓝图接口Add Loading Screen Splash添加Splash,如下图所示:

蓝图

输入:
- Texture 2D Object引用类型:
- Texture:当前添加的SplashScreen中要显示的纹理图片
- FVector类型:
- Translation in Meters:SplashScreen中心点的初始平移(以米为单位)
- FRotator类型:
- Rotation:初始SplashScreen旋转,旋转原点在SplashScreen中心
- FVector2D类型:
- Size in Meters:SplashScreen四边形以米为单位的大小
- bool类型:
- Clear Before Add:是否在新添加一个SplashScreen之前,先清空所有Splashs
输出: 无
返回值:
- bool类型:
- true:添加Splash成功
- false:添加Splash失败
7.8 Boundary(安全区)相关函数库¶
SDK以蓝图节点的形式提供了相应的API,在事件图表中单击鼠标右键,进入PXR项目,在PXRHMD子项中,即可看到这些API,如下图所示。

图 7.7 Boundary相关函数库
PXR Set Boundary Visible¶
通过该蓝图节点设置安全边界网格是否常驻显示。
蓝图

输入:
bool类型:
- New Visible:
- 勾选:true,开启安全区常驻显示
- 不勾选:false,关闭安全区常驻显示
- New Visible:
输出:无
返回值:无
PXR Get Boundary Visible¶
通过该蓝图节点可以获取安全是否常驻显示。
蓝图

输入: 无
输出: 无
返回值:
- bool类型:
- true:安全区常驻显示开启
- false:安全区常驻显示关闭
PXR Get Boundary Dimensions¶
通过该蓝图节点可以获取自定义安全边界的尺寸。
蓝图

输入:
- 枚举类型:
- Boundary Type(EPicoXRBoundaryType):
- The Outer Boundary:安全区(即原地快速安全区或自定义安全区)
- The Play Area Boundary:自定义安全区边界的最大内接矩形(原地快速安全区无此矩形)
- Boundary Type(EPicoXRBoundaryType):
输出:无
返回值:
- Vector类型:通过FVector的x值和z值描述一个矩形,x:长边,y:1,z:短边,如果是原地安全区,Vector为(0,0,0)
PXR Get Boundary Through Data¶
通过该蓝图节点可以获取左右摄像机画面(Vulkan不支持)。
蓝图

输入:
- 枚举类型:
- Camera Type(EPicoXRCameraType):
- Left:左摄像机
- Right:右摄像机
- Camera Type(EPicoXRCameraType):
输出:
- Texture2D Object 引用类型:
- Camera Image:获取到的相机画面
返回值:
- bool类型:
- true:获取成功
- false:获取失败
PXR Get Boundary Enabled¶
通过该蓝图节点可以检测安全边界是否打开。
蓝图

输入: 无
输出: 无
返回值:
- bool类型:
- true:安全边界检测打开
- false:安全边界关闭
PXR Get Boundary Configured¶
通过该蓝图节点可以判断系统是否存在有效安全边界。
蓝图

输入: 无
输出: 无
返回值:
- bool类型:
- true:存在有效安全边界
- false:不存在有效安全边界
PXR Get Boundary Geometry¶
通过该蓝图节点可以获取安全区坐标值数组。
蓝图

输入:
- 枚举类型:
- Boundary Type(EPicoXRBoundaryType):
- The Outer Boundary:安全区(即原地快速安全区或自定义安全区)
- The Play Area Boundary:自定义安全区边界的最大内接矩形(原地快速安全区无此矩形)
- Boundary Type(EPicoXRBoundaryType):
输出: 无
返回值:
- 向量数组类型:
- TArray<FVector>:安全区坐标值数组
PXR Boundary Test Node¶
通过该蓝图节点可以根据一个被追踪设备(左手、右手、头)当前位置,判断其是否会触发安全边界,如果会触发安全边界,则输出与安全边界发生相交的结果。
蓝图

输入:
- 枚举类型:
- Device Type(EPicoXRNodeType):
- LeftHand:左手
- RightHand:右手
- Head:头
- Device Type(EPicoXRNodeType):
- 枚举类型:
- Boundary Type(EPicoXRBoundaryType):
- The Outer Boundary:安全区(即原地快速安全区或自定义安全区)
- The Play Area Boundary:自定义安全区边界的最大内接矩形(原地快速安全区无此矩形)
- Boundary Type(EPicoXRBoundaryType):
输出:
- bool类型:
- Is Triggering:是否触发安全边界
- float类型:
- Closest Distance:被追踪设备与安全边界的最近距离
- FVector类型:
- Closest Point:所指定安全边界,与被追踪设备原点距离最近的点坐标
- Closest Point Normal:所指定安全边界,与被追踪设备原点距离最近的点的法线
返回值:
- bool类型:
- true:获取成功
- false:获取失败
PXR Boundary Test Point¶
通过该蓝图节点可以判断一个Unreal坐标系下的点是否会触发安全边界,如果可以触发安全边界,则会输出相交的结果。
蓝图

输入:
- FVector类型:
- Point:Unreal坐标系下用于测试的追踪点坐标
- 枚举类型
- Boundary Type(EPicoXRBoundaryType):
- The Outer Boundary:安全区(即原地快速安全区或自定义安全区)
- The Play Area Boundary:自定义安全区边界的最大内接矩形(原地快速安全区无此矩形)
- Boundary Type(EPicoXRBoundaryType):
输出:
- bool类型:
- Is Triggering:是否触发安全边界
- float类型:
- Closest Distance:追踪点坐标与安全边界的最近距离
- FVector类型:
- Closest Point:所指定安全边界,与追踪点坐标距离最近的点坐标
- Closest Point Normal:所指定安全边界,与追踪点坐标距离最近点的法线
返回值:
- bool类型:
- true:获取成功
- false:获取失败
7.9 Large Space(大空间)相关函数库¶
SDK以蓝图节点的形式提供了相应的API,在事件图表中单击鼠标右键,进入PXR项目,在PXRHMD子项以及PXRSystem API子项中,即可看到这些API,如下图所示。

图 7.8 Large Space相关函数库
PXR Set Large Space Enable¶
通过该蓝图节点可以设置当前应用是否支持大空间。
蓝图

输入:
- bool类型:
- Enable:
- 勾选:true,支持大空间
- 不勾选:false,不支持大空间
- Enable:
- int类型:
- Ext:扩展预留
输出:无
返回值:无
PXR Switch Large Space Scene¶
通过该蓝图节点可以开关大空间,需要在调用接口的蓝图中添加“Pico XR System API”组件,通过绑定回调事件,获取开关的结果。
蓝图

输入:
- delegate类型:
- In Enable Large Space Delegate:绑定开关大空间回调事件,如下图所示:

回调事件参数:
- bool类型:
- true:成功
- false:失败
- bool类型:
bool类型:
- Open:
- 勾选:true,打开大空间
- 不勾选:false,关闭大空间
- Open:
int型
- Ext:为扩展预留
输出: 无
返回值: 无
PXR Get Switch Large Space Status¶
通过绑定回调事件,根据返回的字符串内容判断当前大空间的状态,“0”为未开启,“1”为开启,需要在调用接口的蓝图中添加“Pico XR System API”组件,通过绑定回调事件,获取大空间的状态。
蓝图

输入:
- delegate类型:
- In Enable Large Space Status Delegate:绑定获取大空间状态回调事件,如下图所示:

- 回调事件参数:
- FString类型:
- “0”:未开启
- “1”:开启
- FString类型:
- int类型
- Ext:为扩展预留
输出: 无
返回值: 无
PXR Save Large Space Maps¶
通过该蓝图节点可以保存大空间地图,需要在调用接口的蓝图中添加“Pico XR System API”组件,需要在调用接口的蓝图中添加“Pico XR System API”组件。
蓝图

输入:
- int类型:
- Ext:扩展预留
输出:无
返回值:
- bool类型:
- true:保存成功
- false:保存失败
PXR Export Maps¶
通过该蓝图节点可以导出地图文件,导出的文件在内部储存/maps/export 路径下(该接口会自动生成路径相关文件夹),需要在调用接口的蓝图中添加“Pico XR System API”组件,需要在调用接口的蓝图中添加“Pico XR System API”组件,,通过绑定回调事件,获取导出的结果。
蓝图

输入:
- delegate类型:
- In Export Maps Delegate:绑定导出地图结果回调事件,如下图所示:

回调事件参数:
FString类型:
- true:导出成功
- false:导出失败
int类型:
- Ext:扩展预留
输出: 无
返回值: 无
PXR Import Maps¶
通过该蓝图节点可以导入地图文件,需要将地图文件拷贝到内部存储/maps/文件夹中,再执行导入方法,需要在调用接口的蓝图中添加“Pico XR System API”组件,通过绑定回调事件,获取导入的结果。
蓝图

输入:
- delegate类型:
- In Import Maps Delegate:绑定地图导入结果回调事件,如下图所示:

回调事件参数:
- FString类型:
- true:导入成功
- false:导入失败
- FString类型:
int类型:
- Ext:扩展预留
输出: 无
返回值: 无
PXR Get Predicted Main Sensor State¶
通过该蓝图节点可以获取固定坐标系下设备的姿态数据。
蓝图

输入: 无
输出:
结构体类型:
SensorState:FPxrSensorState
int型:status:
- 0:pose/globalPose的数据不可用
- 1: pose/globalPose只有姿态数据可用
- 3:pose/globalPose位置和姿态数据都可用
FQuat类型:poseQuat:头戴的姿态
FVector类型:poseVector:头戴的位置
FQuat类型:globalPoseQuat:头戴相对于Boundary的姿态
FVector类型:globalPoseVector:头戴相对Boundary的位置
FVector类型:angularVelocity:角速度
FVector类型:linearVelocity:线性速度
FVector类型:angularAcceleration:角加速度
FVector 类型:linearAcceleration:线性角加速度
int型:poseTimeStampNs:取得上述数据的时间(纳秒)
int类型:
- Sensor Frame Index:当前帧对应的Sensor数据的索引
返回值: 无
7.10 系统相关接口¶
通过系统相关接口,开发者可以获取、设置系统的一些配置,开发者可根据需要酌情使用(一般情况下无需使用此部分功能)。
支持设备:
设备 | PUI版本 |
---|---|
Neo 3 Pro/Neo 3 Pro Eye | 全版本 |
在调用系统接口之前,需要在你需要调用系统接口的蓝图中添加“Pico XR System API”组件,系统相关接口均是在该组件内实现。
添加PicoXRSystemAPI组件示例:

图 7.9 Pico XRSystem API组件
SDK以蓝图节点的形式提供了相应的API,在事件图表中单击鼠标右键,进入PXR项目,在PXRSystem API子项中,即可看到这些API,如下图所示:

图 7.10 Pico XRSystem API相关函数库
调用示例:

图 7.11 系统相关接口调用示例
7.10.1 普通接口¶
PXR Get Device Info¶
通过该蓝图接口可以获取设备信息。
蓝图

输入:
- 枚举类型:
- Info Enum(ESystemInfoEnum):
- ELECTRIC_QUANTITY:电量
- PUI_VERSION:PUI版本号
- EQUIPMENT_MODEL:设备型号
- EQUIPMENT_SN:设备SN
- CUSTOMER_SN:客户SN
- INTERNAL_STORAGE_SPACE_OF_THE_DEVICE:设备存储空间
- DEVICE_BLUETOOTH_STATUS:蓝牙状态
- BLUETOOTH_NAME_CONNECTED:蓝牙连接名称
- BLUETOOTH_MAC_ADDRESS:蓝牙Mac地址
- DEVICE_WIFI_STATUS:WIFI连接状态
- WIFI_NAME_CONNECTED:已连接WIFI名称
- WLAN_MAC_ADDRESS:WLAN的MAC地址
- DEVICE_IP:设备IP
- SystemInfoEnum.CHARGING_STATUS:设备是否充电,充电返回2;未充电返回3
- Info Enum(ESystemInfoEnum):
输出: 无
返回值:
- FString类型:根据ESystemInfoEnum枚举值类型,返回对应设备信息的字符串,例如info Enum选择EQUIPMENT_SN,则返回设备SN的字符串。
PXR Set Auto Connect Wifi¶
通过该接口可以连接指定WIFI,通过绑定回调事件,获取设置的结果。
蓝图

输入:
- FString类型:
- Wifi Name:无线名称
- Wifi PSD:Wifi密码
- Int类型:
- Ext:扩展预留。
- delegate类型:
- Set Auto Connect Wifi Delegate:自动连接Wifi回调事件,如下图所示:

回调事件参数:
- bool类型:
- true:连接成功
- false:连接失败
- bool类型:
输出: 无
返回值: 无
PXR Clear Auto Connect Wifi¶
关闭连接指定Wifi功能。
蓝图

输入:
- delegate类型:
- Clear Auto Connect Wifi Delegate:清除连接指定Wifi回调事件,如下图所示:

回调事件参数:
- bool类型:
- true:成功
- false:失败
- bool类型:
输出: 无
返回值: 无
PXR Set Home Key¶
通过该蓝图节点可以设置Home按键功能,重新定义Home键,会影响系统定义的Home键功能,请开发者酌情使用。通过EventEnum设置Home键单击触发或者双击触发,通过FunctionEnum设置所触发的功能类型,通过绑定回调事件,获取设置的结果。
蓝图

输入:
- 枚举类型:
- EventEnum( EHomeEventEnum):
- HOME_SINGLE_CLICK (“Single Click”):单击Home键。
- HOME_DOUBLE_CLICK (“Double Click”):双击Home键。
- FunctionEnum(EHomeFunctionEnum):
- VALUE_HOME_GO_TO_SETTING (“Open Setting”):打开设置
- VALUE_HOME_RECENTER ( “Recenter”):校准
- VALUE_HOME_DISABLE (“Disable”):禁用Home键
- VALUE_HOME_GO_TO_HOME (“Open Launcher”):打开Launcher
- EventEnum( EHomeEventEnum):
- delegate类型:
- Set Home Key Delegate:绑定HomeKey回调事件,如下图所示:

回调事件参数:
- bool类型:
- true:成功
- false:失败
- bool类型:
输出: 无
返回值: 无
PXR Home Key All¶
通过该蓝图节点可以设置Home按键功能扩展。通过EventEnum设置Home键单击触发或者双击触发,TimeSetup设置双击或长按事件的按键间隔时间,通过FunctionEnum设置所触发的功能类型,通过绑定回调事件,获取设置的结果。
蓝图
PXR Set Home Key All蓝图节点如下图所示:

输入:
- 枚举类型:
- EventEnum( EHomeEventEnum):
- HOME_SINGLE_CLICK (“Single Click”):单击Home键
- HOME_DOUBLE_CLICK (“Double Click”):双击Home
- FunctionEnum(EHomeFunctionEnum):
- VALUE_HOME_GO_TO_SETTING (“Open Setting”):打开设置。
- VALUE_HOME_RECENTER ( “Recenter”):校准
- VALUE_HOME_DISABLE (“Disable”):禁用Home键
- VALUE_HOME_GO_TO_HOME (“Open Launcher”):打开Launcher
- EventEnum( EHomeEventEnum):
- int类型:
- TimeSetup:只有双击和长按事件有事件才设置按键间隔时间,短按传0即可
- FString类型:
- Package:当Function为打开指定APP时,传入指定包名
- ClassName:当Function为打开指定APP时,传入指定类名
- delegate类型:
- SetHomeKeyAllDelegate: 绑定HomeKeyAll回调事件,如下图所示:

回调事件参数:
- bool类型:
- true:成功
- false:失败
- bool类型:
输出: 无
返回值: 无
PXR Disable Power Key¶
通过该蓝图节点可以设置Power按键,通过绑定回调事件,获取设置的结果。
蓝图

输入:
- Bool类型:
- isSingleTap:是否为单击
- 勾选:true,为单击触发
- 不勾选:false,为双击触发
- Enable:按键使用状态
- 勾选:true,为启用PowerKey
- 不勾选:false,为禁用PowerKey
- isSingleTap:是否为单击
- delegate类型:
- Disable Power Key Delegate:绑定DisablePower回调事件,如下图所示:

回调事件参数:
- int类型:
- 0:成功
- 1:失败
- int类型:
输出: 无
返回值: 无
PXR Set Screen Off Delay¶
通过该蓝图节点可以设置屏幕关闭延迟时间长度。
蓝图

输入:
- 枚举类型:
- TimeEnum(ESleepDelayTimeEnum):
- FIFTEEN:15秒
- THIRTY:30秒
- SIXTY:1分钟
- THREE_HUNDRED:5分钟
- SIX_HUNDRED:10分钟
- ONE_THOUSAND_AND_EIGHT_HUNDRED:30分钟
- NEVER:永不
- TimeEnum(ESleepDelayTimeEnum):
输出:无
返回值: 无
PXR Set Sleep Delay¶
通过该蓝图节点可以设置系统休眠时间长度,通过绑定回调事件,获取设置的结果。
蓝图

输入:
- 枚举类型:
- TimeEnum(ESleepDelayTimeEnum):
- FIFTEEN:15秒
- THIRTY:30秒
- SIXTY:1分钟
- THREE_HUNDRED:5分钟
- SIX_HUNDRED:10分钟
- ONE_THOUSAND_AND_EIGHT_HUNDRED:30分钟
- NEVER:永不
- TimeEnum(ESleepDelayTimeEnum):
- delegate类型:
- SetScreenOffDelayDelegate: 设置睡眠延迟回调事件,如下图所示:

回调事件参数:
- int类型:
- 0:成功
- 1:失败
- 10:设置的时间过大
- int类型:
输出: 无
返回值: 无
PXR Switch System Function¶
通过该蓝图节点可以设置常用系统开关。
蓝图

输入:
- 枚举类型:
- SystemFunction(ESystemFunctionSwitchEnum):
- SFS_USB (“USB Debug”):USB调试开关
- SFS_AUTOSLEEP (“Auto Sleep”):自动休眠开关
- SFS_SCREENON_CHARGING (“ScreenOn Charging”):亮屏充电开关
- SFS_OTG_CHARGING (“OTG Charging”):OTG充电开关
- SFS_RETURN_MENU_IN_2DMODE (“Show Back Menu in 2D mode”):2D界面下返回图标显示开关
- SFS_COMBINATION_KEY (“Combination Key”):组合键开关
- SFS_CALIBRATION_WITH_POWER_ON (“Calibration wiht power on”):开机校准开关
- SFS_SYSTEM_UPDATE (“System Update”):系统升级开关
- SFS_CAST_SERVICE (“Cast Service”):手机投屏开关,行业解决方案开关打开时,该属性不生效
- SFS_EYE_PROTECTION (“Eye Protection”):护眼模式开关
- SFS_SECURITY_ZONE_PERMANENTLY (“Security Zone Permanently”):6Dof安全区永久关闭开关
- SFS_Auto_Calibration (“Auto Calibration”):自动校准开关
- SFS_USB_BOOT (“USB Boot”):USB插入启动开关
- SwitchEnum(ESwitchEnum):
- S_ON(”On”):打开
- S_OFF (“Off”) :关闭
- SystemFunction(ESystemFunctionSwitchEnum):
- Int类型:
- Ext为扩展预留
输出: 无
返回值: 无
PXR Set Usb Configuration Option¶
通过该蓝图节点可以设置USB连接模式(MTP、充电),MTP模型下可以传输媒体文件,充电模式下,不可传输文件,只可充电。
蓝图

输入:
- 枚举类型:
- Usb Config Mode Enum(EUSBConfigModeEnum):
- MTP:媒体传输协议模式
- CHARGE:充电模式
- Int类型:
- Ext:扩展预留
- Usb Config Mode Enum(EUSBConfigModeEnum):
输出: 无
返回值: 无
PXR Write Config File to Data Local¶
通过该蓝图节点可以向Data/local/tmp下写配置文件,通过绑定回调事件,获取设置的结果。注:该接口仅企业版头戴可用。
蓝图

输入:
- FString类型:
- Path:写配置文件的路径
- Content:写配置文件的内容
- delegate类型:
- In Write Config Delegate:绑定写配置文件回调事件,如下图所示:

回调事件参数:
- bool型:
- true:成功
- false:失败
- bool型:
输出: 无
返回值: 无
PXR Reset All Key to Default¶
使用该蓝图节点可以恢复默认按键配置,通过绑定回调事件,获取设置的结果。
蓝图

输入:
- delegate类型:
- In Reset All Key Delegate:绑定重设所有按键回调事件,如下图所示:

回调事件参数:
- bool类型:
- true:成功
- false:失败
- bool类型:
输出: 无
返回值: 无
PXR Set Brightness¶
通过该蓝图节点可以设置头戴当前的亮度值。注:首次调用会提示系统设置权限请求。
蓝图

输入:
- int类型:
- Brightness:亮度的数值(范围:0-255)
输出: 无
返回值: 无
PXR Kill Background Apps with White List¶
通过该蓝图节点,可以清除后台应用,传入的白名单不会被清除。
蓝图

输入:
- 字符串数组类型(TArray<FString>):
- PackageNames:白名单应用包名字符串的数组
- int类型:
- Ext:扩展预留
输出: 无
返回值: 无
7.10.2 受保护接口¶
注意:以下接口为受保护接口,调用以下接口前,需要在项目设置->插件->PicoXR中勾选“Use Pico Advance Interface”选项。勾选了该选项候,App将无法上架Pico Store,如果您的应用需要通过Pico Store分发,请勿勾选“Use Pico Advance Interface”选项和使用以下接口。
PXR Set Device Action¶
通过该蓝图节点,可以控制设备关机重启,通过绑定回调事件,获取设置的结果。
蓝图

输入:
- 枚举类型:
- Device Control Enum(EDeviceControlEnum):
- DEVICE_CONTROL_REBOOT (“Device Reboot”):设备重启
- DEVICE_CONTROL_SHUTDOWN (“Device ShutDown”):设备关闭
- Device Control Enum(EDeviceControlEnum):
- delegate类型:
- Set Device Action Delegate:注册设备控制回调事件,如下图所示:

回调事件参数:
- int类型:
- 0:成功
- 1:失败
- int类型:
输出: 无
返回值: 无
PXR App Manager¶
通过该蓝图节点可以静默安装或卸载应用,通过绑定回调事件,获取设置的结果。
蓝图

输入:
- 枚举类型:
- Package Control Enum(EPackageControlEnum):
- PACKAGE_SILENCE_INSTALL (“Install Package”):应用安装
- PACKAGE_SILENCE_UNINSTALL (“Uninstall Package”):应用卸载
- Package Control Enum(EPackageControlEnum):
- FString类型:
- Path:静默安装的安装包路径或静默卸载时的应用包名
- int类型:
- Ext:扩展预留
- delegate类型
- App Manager Delegate:注册静默安装或卸载回调事件,如下图所示:

回调事件参数:
- int类型:
- 0:成功
- 1:失败
- int类型:
输出: 无
返回值: 无