7 API接口函数一览

7.1 HMD(头戴显示器)通用函数库

SDK支持下图中红点标记的HMD通用函数,详细用法说明请参考UE4 官方文档

_images/7.1.1.png

图7.1 SDK已支持通用函数

其中:

  1. Reset Orientation and Position节点,仅支持重置正方向的功能,函数节点中的Yaw参数值不起作用。
  2. 使用Get HMDWorn State,需要在项目设置PicoXR Settings菜单里,勾选“Enable PSensor”选项。

7.2 HMD(头戴显示器)专用函数库

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

_images/7.2.0.png

图7.2 HMD专用函数库

PXR Get Current Orientation

通过该蓝图节点可以获取头戴当前的姿态,返回值用四元数表示。

蓝图

_images/7.2.1.png

输入:无

输出:无

返回值

  • Quat(四元数)类型:
    • 表示当前头戴姿态

PXR Get Device Model

通过该蓝图节点可以获取当前的头戴类型,例如“Pico Neo 3”。

蓝图

_images/7.2.4.png

输入:无

输出:无

返回值

  • FString类型:
    • 当前设备类型

PXR Get Field Of View

通过该蓝图节点可以获取头戴的水平方向FOV和垂直方向FOV。

蓝图

_images/7.2.5.png

输入:无

输出

float类型:

  • HFOVIn Degrees:水平方向的FOV,单位为角度
  • VFOVIn Degrees:垂直方向的FOV,单位为角度

返回值

bool类型:

  • true:获取成功
  • false:获取失败

PXR Does Support Positional Tracking

通过该蓝图节点可以判断头戴是否支持位置追踪,支持位置追踪则为6DOF模式,不支持位置追踪则为3DOF模式。

蓝图

_images/7.2.6.png

输入:无

输出:无

返回值

bool类型:

  • true:支持位置追踪(6DOF)
  • false:不支持位置追踪(3DOF)

PXR Get Current Display Frequency

通过该蓝图节点可以获取当前屏幕刷新率,目前支持72hz、90hz、120hz三种屏幕刷新率,默认为72hz,90hz、120hz等模式需要在设置中的LAB标签栏下,选择对应模式。

蓝图

_images/7.2.7.png

输入:无

输出:无

返回值

Float类型:

  • 0:获取刷新率失败
  • 72:72hz模式
  • 90:90hz模式
  • 120:120hz模式

PXR Get HMDWorn State

通过该蓝图节点可以获取当前头戴显示器的状态,包含了穿戴(Worn)、未穿戴(NotWorn)、Unknown(未知)三种状态。需要在项目设置PicoXR Settings菜单里,勾选“Enable PSensor”选项,若未勾选,则会返回Unknown状态。

蓝图

_images/7.2.8.png

输入:无

输出:无

返回值

枚举类型:

  • EHMDWornState:
    • Unknown:Enable PSensor选项没有打开,或者PSensor检测失败。
    • Worn:Enable PSensor选项打开,并且头戴显示器的PSensor传感器前方有遮挡。
    • NotWorn:Enable PSensor选项打开,并且头戴显示器的PSensor传感器前方没有遮挡。

PXR Reset HMDSensor

通过该蓝图节点可以校准头戴的位置和方向,与Reset Orientation and Position接口的作用类似,将玩家的方向重置为初始正方向,位置重置为初始位置。

蓝图

_images/7.2.9.png

输入:无

输出:无

返回值

bool类型:

  • true:校准成功
  • false:校准失败

PXR Set CPUAndGPULevels

通过该蓝图节点可以设置头戴上 CPU 和 GPU 的时钟频率,CPU 和 GPU 级别可以设置为 1、2、3、4、5五个预设级别。值为 1 会导致 CPU 或 GPU 以最慢的时钟速率运行,这是最节能的。从1-5会使 CPU 或 GPU 时钟速率逐渐加快从而提高性能,但是会产生更多的热量并使电池电量消耗的更快。

蓝图

_images/7.2.10.png

输入

int类型:

  • CPU Level: CPU时钟频率设置,允许设置int型: 1 to 5。
  • GPU Level: GPU时钟频率设置,允许设置int型: 1 to 5。

输出:无

返回值:无

PXR Get IPD

通过该蓝图节点可以获取当前设备的瞳距。

蓝图

_images/7.2.26.png

输入:无

输出:无

返回值

  • Float类型:
    • 当前瞳距

PXR IPDChangedDelegates

通过该蓝图节点可以绑定瞳距改变回调事件,通过绑定回调事件,获取新的瞳距。

蓝图

_images/7.2.27.png

输入

  • delegate类型:

    • On Pico XRIPDChanged:绑定瞳距改变回调事件,如下图所示:
_images/7.2.1.1.1.png
  • 回调事件参数:

    • 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)委托。

蓝图

_images/7.2.28.png

输入:无

输出:无

返回值

对事件管理器单例的引用。

各个委托的绑定方法如下:

Device Connect Changed Delegate

通过该委托可以绑定手柄连接状态变化事件,并且通过参数获取变化状态,例如Handness为0,State为1,则表示左手柄连接。

蓝图

_images/7.2.1.1.2.png

回调事件参数:

  • int类型:
    • Handness:手柄标识:
      • 0:左手柄
      • 1:右手柄
    • State连接状态:
      • 0:断开连接
      • 1:建立连接

Ipd Changed Delegate

通过该委托可以绑定IPD变化事件,并且通过回调事件参数获取变化后的瞳距数值。

蓝图
_images/7.2.1.1.3.png

回调事件参数:

  • float类型:
    • New Ipd:新瞳距

Long Home Pressed Delegate

通过该委托可以绑定长按Home键事件。

蓝图

_images/7.2.1.1.4.png

Refresh Rate Changed Delegate

通过该委托可以绑定刷新率改变事件,并且通过回调事件参数获取变化后的新刷新率。

蓝图

_images/7.2.1.1.5.png

回调事件参数:

  • float类型:
    • New Rate:新刷新率

Resume Delegate

通过该委托可以绑定恢复事件,例如当按home键从应用返回主界面,再按home返回应用时,将会触发该回调事件。

_images/7.2.1.1.5.png

PXR Set See Through Background

通过该蓝图节点可以设置使用相机画面做背景。注:当前该接口在Unreal 4.24、4.25版本中不可用,4.26、4.27版本中可用。

蓝图

_images/7.2.20.png

输入

bool类型:

  • true:启用相机画面为背景
  • false:关闭相机画面为背景

输出:无

返回值: int类型:

  • 0:设置成功
  • -1:设置失败

PXR Get Dialog State

通过该蓝图节点可以获取安全区的状态。

蓝图

_images/7.2.22.png

输入:无

输出:无

返回值

枚举类型:

  • 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,如下图所示:

_images/7.3.1.1.1.1.png

图 7.3 Input相关函数库

PXR Get Controller Device

通过该蓝图节点可以获取当前已连接手柄的类型。

蓝图

_images/7.3.1.1.1.2.png

输入: 无

输出

枚举类型:

  • Controller Type(EPicoXRControllerDeviceType):
    • UnKnown:未知控制器
    • Neo3:Pico Neo3控制器

返回值:无

PXR Get Controller Power

通过该蓝图节点可以获取当前手柄的电量。

蓝图

_images/7.3.1.1.1.3.png

输入

枚举类型:

  • Controller Type(EPicoXRControllerType):
    • Pico Neo LeftHand:左手柄
    • Pico Neo RightHand:右手柄

输出

int类型:

  • Power:指定手柄的手柄电量(范围:1-5)

返回值

bool类型:

  • true:获取成功
  • false:获取失败

PXR Get Controller Connection State

通过该蓝图节点可以获取指定手柄的连接状态。

蓝图

_images/7.3.1.1.1.4.png

输入

  • 枚举类型:
    • Controller Type(EPicoXRControllerType):
      • Pico Neo LeftHand:左手柄
      • Pico Neo RightHand:右手柄

输出

bool类型:

  • true:已连接
  • false:未连接

返回值

bool类型:

  • true:获取成功
  • false:获取失败

PXR Vibrate Controller

通过该蓝图节点可以控制手柄震动。

蓝图

_images/7.3.1.1.1.5.png

输入

枚举类型:

  • 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

通过该蓝图节点可以获取指定手柄的加速度。

蓝图

_images/7.3.1.1.1.6.png

输入

  • 枚举类型:
    • Controller Type(EPicoXRControllerType ):
      • Pico Neo LeftHand:左手柄
      • Pico Neo RightHand:右手柄

输出

  • FVector类型:
    • Acceleration:手柄加速度(单位:cm/s)

返回值

  • bool类型:
    • true:获取成功
    • false:获取失败

PXR Get Controller Angular Velocity

通过该蓝图节点可以获取指定手柄的角速度。

蓝图

_images/7.3.1.1.1.7.png

输入

枚举类型:

  • Controller Type(EPicoXRControllerType):
    • Pico Neo LeftHand:左手柄
    • Pico Neo RightHand:右手柄

输出

FVector类型:

  • Angular Velocity:手柄角速度(rad/s)

返回值

  • bool类型:
    • true:获取成功
    • false:获取失败

PXR Get Controller Linear Velocity

通过该蓝图节点可以获取指定手柄的线速度。

蓝图

_images/7.3.1.1.1.8.png

输入

枚举类型:

  • Controller Type(EPicoXRControllerType):
    • Pico Neo LeftHand:左手柄
    • Pico Neo RightHand:右手柄

输出

  • FVector类型:
    • Linear Velocity:手柄线速度(cm/s)

返回值

bool类型:

  • true:获取成功
  • false:获取失败

PXR Set Controller Origin Offset

通过该蓝图节点可以设置手柄原点坐标偏移。

蓝图

_images/7.3.1.1.1.9.png

输入

枚举类型:

  • Controller Type(EPicoXRControllerType):
    • Pico Neo LeftHand:左手柄
    • Pico Neo RightHand:右手柄

Vector类型:

  • Offset:手柄原点坐标偏移量(单位:米)

输出:无

返回值:无

PXR Get Controller Predicted Location and Rotation

通过该蓝图节点可以预测一定时间之后,指定手柄的位置和旋转。

蓝图

_images/7.3.1.1.1.10.png

输入

  • 枚举类型:

    • Device Hand(EControllerHand):
    • Left:左手柄
    • Right:右手柄
float类型:
  • Predicted Time:预测时间(范围:0-100ms)

输出

FVector类型:

  • Location:根据预测时间计算得出的手柄位置

FRotator类型:

  • Rotation:根据预测时间计算得出的手柄旋转

返回值: 无

PXR Get Controller Enable Homekey

通过该节点可以判断手柄是否能接收Home键按键事件。

蓝图

_images/7.3.1.1.1.11.png

输入: 无

输出: 无

返回值

bool类型:

  • true:启用接收Home键事件
  • false:已关闭接收home键事件

7.4 Eye Tracking(眼球追踪)相关函数库

SDK以蓝图节点的形式提供了相应的API,在事件图表中单击鼠标右键,进入PXR项目,在PXRHMD子项中,即可看到这些API,如下图所示。注:在使用Eye Tracking相关API之前,请参考8.2 眼球追踪章节,进行相关设置

_images/7.4.1.1.1.1.png

图 7.4 Eye Tracking相关函数库

PXR Get Eye Tracking Data

获取眼球追踪的数据(仅Neo3 Pro Eye支持,需在项目设置中勾选”Enable Eye Tracking”)。

蓝图

_images/7.4.1.1.1.2.png

输入: 无

输出: 无

返回值

结构体类型:

  • 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注视点渲染章节,进行相关设置

_images/7.4.1.1.1.3.png

图 7.5 Foveation Rendering相关函数库

PXR Enable Foveation

通过该蓝图节点可以打开或者关闭注视点渲染。

蓝图

_images/7.4.1.1.1.4.png

输入

  • bool类型:
    • 勾选:true,打开注视点渲染
    • 不勾选:false,关闭注视点渲染

输出: 无

返回值: 无

PXR Get Foveation Level

通过该蓝图节点可以获取当前注视点渲染(Foveation Rendering)等级。

蓝图

_images/7.4.1.1.1.5.png

输入: 无

输出

  • 枚举类型:
    • Foveation Level(EPicoXRFoveationLevel):
      • Low
      • Medium
      • High
      • TopHigh

返回值

  • bool类型:
    • true:获取成功
    • false:获取失败

PXR Set Foveation Level

打包之后,可以通过蓝图节点动态的修改注视点渲染(Foveation Rendering)的等级(注:打包前,必须勾选“Enable FoveationRendering”开启注视点渲染功能)。

蓝图

_images/7.4.1.1.1.6.png

输入

枚举类型:

  • Foveation Level(EPicoXRFoveationLevel):
    • Low
    • Medium
    • High
    • TopHigh

输出: 无

返回值

bool类型:

  • true:设置成功
  • false:设置失败

PXR Set Foveation Parameter

通过该蓝图节点可以设置注视点渲染相关参数。除非开发者对“Foveation Rendering”技术有深入的了解,可以使用自定义参数来调整FFR优化细节,否则建议使用PXR Set Foveation Level接口,设置官方预定义Level。

蓝图

_images/7.2.21.png

输入

  • 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。

蓝图

_images/7.4.1.1.1.7.png

输入

  • delegate类型:
    • On Verify App Callback:绑定版权验证回调事件,如下图所示:
_images/7.4.1.1.1.8.png
  • 回调事件参数:

    • int型:验证结果Code:
      • 0:为失败
      • -2:服务不存在
      • -3:服务绑定失败
      • -4:捕获异常代码
      • -5:超时未收到服务返回值
      • 10:包名缺失
      • 11:APPID缺失
      • 13:包名和APPID不匹配
      • 20:用户未登录
      • 21:用户未购买
      • 31:未查询到此应用
      • 32:购买SN号与本机SN号不匹配

输出: 无

返回值: 无

7.7 SplashScreen相关函数库

SDK以蓝图节点的形式提供了相应的API,在事件图表中单击鼠标右键,进入PXR项目,在PXRHMD子项中,即可看到这些API,如下图所示。注:在使用SplashScreen相关API之前,请参考8.7 SplashScreen章节,进行相关设置

_images/7.4.1.1.1.9.png

图 7.6 SplashScreen相关函数库

PXR Clear Loading Splash Screens

清除SplashScreen当前的属性配置(会设置为不自动显示)

蓝图

_images/7.4.1.1.1.10.png

输入:无

输出:无

返回值:无

PXR Enable Auto Show Splash Screen

设置是否自动显示SplashScreen。

蓝图

_images/7.4.1.1.1.11.png

输入

  • bool类型:

    • Enable:
      • 勾选:true,设置自动显示
      • 不勾选:false,设置不自动显示

输出: 无

返回值: 无

PXR Add Splash Screen

添加SplashScreen,并设置SplashScreen属性。注:在Unreal 4.26中,通过Setting以及该接口添加Splash存在已知问题,建议在Unreal 4.26及以后版本,使用Unreal提供的标准蓝图接口Add Loading Screen Splash添加Splash,如下图所示:

_images/7.4.1.1.1.12.png

蓝图

_images/7.4.1.1.1.13.png

输入

  • 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,如下图所示。

_images/7.8.1.1.1.png

图 7.7 Boundary相关函数库

PXR Set Boundary Visible

通过该蓝图节点设置安全边界网格是否常驻显示。

蓝图

_images/7.8.1.1.2.png

输入

  • bool类型:

    • New Visible:
      • 勾选:true,开启安全区常驻显示
      • 不勾选:false,关闭安全区常驻显示

输出:无

返回值:无

PXR Get Boundary Visible

通过该蓝图节点可以获取安全是否常驻显示。

蓝图

_images/7.8.1.1.3.png

输入: 无

输出: 无

返回值

  • bool类型:
    • true:安全区常驻显示开启
    • false:安全区常驻显示关闭

PXR Get Boundary Dimensions

通过该蓝图节点可以获取自定义安全边界的尺寸。

蓝图

_images/7.8.1.1.4.png

输入

  • 枚举类型:
    • Boundary Type(EPicoXRBoundaryType):
      • The Outer Boundary:安全区(即原地快速安全区或自定义安全区)
      • The Play Area Boundary:自定义安全区边界的最大内接矩形(原地快速安全区无此矩形)

输出:无

返回值

  • Vector类型:通过FVector的x值和z值描述一个矩形,x:长边,y:1,z:短边,如果是原地安全区,Vector为(0,0,0)

PXR Get Boundary Through Data

通过该蓝图节点可以获取左右摄像机画面(Vulkan不支持)。

蓝图

_images/7.8.1.1.5.png

输入

  • 枚举类型:
    • Camera Type(EPicoXRCameraType):
      • Left:左摄像机
      • Right:右摄像机

输出

  • Texture2D Object 引用类型:
    • Camera Image:获取到的相机画面

返回值

  • bool类型:
    • true:获取成功
    • false:获取失败

PXR Get Boundary Enabled

通过该蓝图节点可以检测安全边界是否打开。

蓝图

_images/7.8.1.1.6.png

输入: 无

输出: 无

返回值

  • bool类型:
    • true:安全边界检测打开
    • false:安全边界关闭

PXR Get Boundary Configured

通过该蓝图节点可以判断系统是否存在有效安全边界。

蓝图

_images/7.8.1.1.8.png

输入: 无

输出: 无

返回值

  • bool类型:
    • true:存在有效安全边界
    • false:不存在有效安全边界

PXR Get Boundary Geometry

通过该蓝图节点可以获取安全区坐标值数组。

蓝图

_images/7.8.1.1.9.png

输入

  • 枚举类型:
    • Boundary Type(EPicoXRBoundaryType):
      • The Outer Boundary:安全区(即原地快速安全区或自定义安全区)
      • The Play Area Boundary:自定义安全区边界的最大内接矩形(原地快速安全区无此矩形)

输出: 无

返回值

  • 向量数组类型:
    • TArray<FVector>:安全区坐标值数组

PXR Boundary Test Node

通过该蓝图节点可以根据一个被追踪设备(左手、右手、头)当前位置,判断其是否会触发安全边界,如果会触发安全边界,则输出与安全边界发生相交的结果。

蓝图

_images/7.8.1.1.10.png

输入

  • 枚举类型:
    • Device Type(EPicoXRNodeType):
      • LeftHand:左手
      • RightHand:右手
      • Head:头
  • 枚举类型:
    • Boundary Type(EPicoXRBoundaryType):
      • The Outer Boundary:安全区(即原地快速安全区或自定义安全区)
      • The Play Area Boundary:自定义安全区边界的最大内接矩形(原地快速安全区无此矩形)

输出

  • bool类型:
    • Is Triggering:是否触发安全边界
  • float类型:
    • Closest Distance:被追踪设备与安全边界的最近距离
  • FVector类型:
    • Closest Point:所指定安全边界,与被追踪设备原点距离最近的点坐标
    • Closest Point Normal:所指定安全边界,与被追踪设备原点距离最近的点的法线

返回值

  • bool类型:
    • true:获取成功
    • false:获取失败

PXR Boundary Test Point

通过该蓝图节点可以判断一个Unreal坐标系下的点是否会触发安全边界,如果可以触发安全边界,则会输出相交的结果。

蓝图

_images/7.8.1.1.11.png

输入

  • FVector类型:
    • Point:Unreal坐标系下用于测试的追踪点坐标
  • 枚举类型
    • Boundary Type(EPicoXRBoundaryType):
      • The Outer Boundary:安全区(即原地快速安全区或自定义安全区)
      • The Play Area Boundary:自定义安全区边界的最大内接矩形(原地快速安全区无此矩形)

输出

  • 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,如下图所示。

_images/7.9.1.1.png

图 7.8 Large Space相关函数库

PXR Set Large Space Enable

通过该蓝图节点可以设置当前应用是否支持大空间。

蓝图

_images/7.9.1.2.png

输入

  • bool类型:
    • Enable:
      • 勾选:true,支持大空间
      • 不勾选:false,不支持大空间
  • int类型:
    • Ext:扩展预留

输出:无

返回值:无

PXR Switch Large Space Scene

通过该蓝图节点可以开关大空间,需要在调用接口的蓝图中添加“Pico XR System API”组件,通过绑定回调事件,获取开关的结果。

蓝图

_images/7.9.1.3.png

输入

  • delegate类型:
    • In Enable Large Space Delegate:绑定开关大空间回调事件,如下图所示:
_images/7.9.1.4.png
  • 回调事件参数:

    • bool类型:
      • true:成功
      • false:失败
  • bool类型:

    • Open:
      • 勾选:true,打开大空间
      • 不勾选:false,关闭大空间
  • int型

    • Ext:为扩展预留

输出: 无

返回值: 无

PXR Get Switch Large Space Status

通过绑定回调事件,根据返回的字符串内容判断当前大空间的状态,“0”为未开启,“1”为开启,需要在调用接口的蓝图中添加“Pico XR System API”组件,通过绑定回调事件,获取大空间的状态。

蓝图

_images/7.9.1.5.png

输入

  • delegate类型:
    • In Enable Large Space Status Delegate:绑定获取大空间状态回调事件,如下图所示:
_images/7.9.1.6.png
  • 回调事件参数:
    • FString类型:
      • “0”:未开启
      • “1”:开启
  • int类型
    • Ext:为扩展预留

输出: 无

返回值: 无

PXR Save Large Space Maps

通过该蓝图节点可以保存大空间地图,需要在调用接口的蓝图中添加“Pico XR System API”组件,需要在调用接口的蓝图中添加“Pico XR System API”组件。

蓝图

_images/7.9.1.7.png

输入

  • int类型:
    • Ext:扩展预留

输出:无

返回值

  • bool类型:
    • true:保存成功
    • false:保存失败

PXR Export Maps

通过该蓝图节点可以导出地图文件,导出的文件在内部储存/maps/export 路径下(该接口会自动生成路径相关文件夹),需要在调用接口的蓝图中添加“Pico XR System API”组件,需要在调用接口的蓝图中添加“Pico XR System API”组件,,通过绑定回调事件,获取导出的结果。

蓝图

_images/7.9.1.8.png

输入

  • delegate类型:
    • In Export Maps Delegate:绑定导出地图结果回调事件,如下图所示:
_images/7.9.1.9.png
  • 回调事件参数:

    • FString类型:

      • true:导出成功
      • false:导出失败
  • int类型:

    • Ext:扩展预留

输出: 无

返回值: 无

PXR Import Maps

通过该蓝图节点可以导入地图文件,需要将地图文件拷贝到内部存储/maps/文件夹中,再执行导入方法,需要在调用接口的蓝图中添加“Pico XR System API”组件,通过绑定回调事件,获取导入的结果。

蓝图

_images/7.9.1.10.png

输入

  • delegate类型:
    • In Import Maps Delegate:绑定地图导入结果回调事件,如下图所示:
_images/7.9.1.11.png
  • 回调事件参数:

    • FString类型:
      • true:导入成功
      • false:导入失败
  • int类型:

    • Ext:扩展预留

输出: 无

返回值: 无

PXR Get Predicted Main Sensor State

通过该蓝图节点可以获取固定坐标系下设备的姿态数据。

蓝图

_images/7.9.1.12.png

输入: 无

输出

  • 结构体类型:

    • 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组件示例:

_images/7.10.1.png

图 7.9 Pico XRSystem API组件

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

_images/7.10.2.png

图 7.10 Pico XRSystem API相关函数库

调用示例:

_images/7.10.3.png

图 7.11 系统相关接口调用示例

7.10.1 普通接口

PXR Get Device Info

通过该蓝图接口可以获取设备信息。

蓝图

_images/7.10.4.png

输入

  • 枚举类型:
    • 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

输出: 无

返回值

  • FString类型:根据ESystemInfoEnum枚举值类型,返回对应设备信息的字符串,例如info Enum选择EQUIPMENT_SN,则返回设备SN的字符串。

PXR Set Auto Connect Wifi

通过该接口可以连接指定WIFI,通过绑定回调事件,获取设置的结果。

蓝图

_images/7.10.5.png

输入

  • FString类型:
    • Wifi Name:无线名称
    • Wifi PSD:Wifi密码
  • Int类型:
    • Ext:扩展预留。
  • delegate类型:
    • Set Auto Connect Wifi Delegate:自动连接Wifi回调事件,如下图所示:
_images/7.10.6.png
  • 回调事件参数:

    • bool类型:
      • true:连接成功
      • false:连接失败

输出: 无

返回值: 无

PXR Clear Auto Connect Wifi

关闭连接指定Wifi功能。

蓝图

_images/7.10.7.png

输入

  • delegate类型:
    • Clear Auto Connect Wifi Delegate:清除连接指定Wifi回调事件,如下图所示:
_images/7.10.8.png
  • 回调事件参数:

    • bool类型:
      • true:成功
      • false:失败

输出: 无

返回值: 无

PXR Set Home Key

通过该蓝图节点可以设置Home按键功能,重新定义Home键,会影响系统定义的Home键功能,请开发者酌情使用。通过EventEnum设置Home键单击触发或者双击触发,通过FunctionEnum设置所触发的功能类型,通过绑定回调事件,获取设置的结果。

蓝图

_images/7.10.9.png

输入

  • 枚举类型:
    • 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
  • delegate类型:
    • Set Home Key Delegate:绑定HomeKey回调事件,如下图所示:
_images/7.10.10.png
  • 回调事件参数:

    • bool类型:
      • true:成功
      • false:失败

输出: 无

返回值: 无

PXR Home Key All

通过该蓝图节点可以设置Home按键功能扩展。通过EventEnum设置Home键单击触发或者双击触发,TimeSetup设置双击或长按事件的按键间隔时间,通过FunctionEnum设置所触发的功能类型,通过绑定回调事件,获取设置的结果。

蓝图

PXR Set Home Key All蓝图节点如下图所示:

_images/7.10.11.png

输入

  • 枚举类型:
    • 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
  • int类型:
    • TimeSetup:只有双击和长按事件有事件才设置按键间隔时间,短按传0即可
  • FString类型:
    • Package:当Function为打开指定APP时,传入指定包名
    • ClassName:当Function为打开指定APP时,传入指定类名
  • delegate类型:
    • SetHomeKeyAllDelegate: 绑定HomeKeyAll回调事件,如下图所示:
_images/7.10.12.png
  • 回调事件参数:

    • bool类型:
      • true:成功
      • false:失败

输出: 无

返回值: 无

PXR Disable Power Key

通过该蓝图节点可以设置Power按键,通过绑定回调事件,获取设置的结果。

蓝图

_images/7.10.13.png

输入

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

    • int类型:
      • 0:成功
      • 1:失败

输出: 无

返回值: 无

PXR Set Screen Off Delay

通过该蓝图节点可以设置屏幕关闭延迟时间长度。

蓝图

_images/7.10.15.png

输入

  • 枚举类型:
    • TimeEnum(ESleepDelayTimeEnum):
      • FIFTEEN:15秒
      • THIRTY:30秒
      • SIXTY:1分钟
      • THREE_HUNDRED:5分钟
      • SIX_HUNDRED:10分钟
      • ONE_THOUSAND_AND_EIGHT_HUNDRED:30分钟
      • NEVER:永不

输出:无

返回值: 无

PXR Set Sleep Delay

通过该蓝图节点可以设置系统休眠时间长度,通过绑定回调事件,获取设置的结果。

蓝图

_images/7.10.16.png

输入

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

    • int类型:
      • 0:成功
      • 1:失败
      • 10:设置的时间过大

输出: 无

返回值: 无

PXR Switch System Function

通过该蓝图节点可以设置常用系统开关。

蓝图

_images/7.10.18.png

输入

  • 枚举类型:
    • 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”) :关闭
  • Int类型:
    • Ext为扩展预留

输出: 无

返回值: 无

PXR Set Usb Configuration Option

通过该蓝图节点可以设置USB连接模式(MTP、充电),MTP模型下可以传输媒体文件,充电模式下,不可传输文件,只可充电。

蓝图

_images/7.10.19.png

输入

  • 枚举类型:
    • Usb Config Mode Enum(EUSBConfigModeEnum):
      • MTP:媒体传输协议模式
      • CHARGE:充电模式
    • Int类型:
      • Ext:扩展预留

输出: 无

返回值: 无

PXR Acquire Wake Lock

通过该蓝图节点可以请求WakeLock,使系统不会进入睡眠状态。仅支持G2 4K

蓝图

_images/7.10.20.png

输入: 无

输出: 无

返回值: 无

PXR Release Wake Lock

通过该蓝图节点可以释放WakeLock接口,使系统可以进入睡眠状态。仅支持G2 4K。

蓝图

_images/7.10.21.png

输入: 无

输出: 无

返回值: 无

PXR Write Config File to Data Local

通过该蓝图节点可以向Data/local/tmp下写配置文件,通过绑定回调事件,获取设置的结果。注:该接口仅企业版头戴可用。

蓝图

_images/7.10.22.png

输入

  • FString类型:
    • Path:写配置文件的路径
    • Content:写配置文件的内容
  • delegate类型:
    • In Write Config Delegate:绑定写配置文件回调事件,如下图所示:
_images/7.10.23.png
  • 回调事件参数:

    • bool型:
      • true:成功
      • false:失败

输出: 无

返回值: 无

PXR Reset All Key to Default

使用该蓝图节点可以恢复默认按键配置,通过绑定回调事件,获取设置的结果。

蓝图

_images/7.10.24.png

输入

  • delegate类型:
    • In Reset All Key Delegate:绑定重设所有按键回调事件,如下图所示:
_images/7.10.25.png
  • 回调事件参数:

    • bool类型:
      • true:成功
      • false:失败

输出: 无

返回值: 无

PXR Enable Enter Key

通过该蓝图节点可以取消屏蔽头盔确认键,调用该接口后,头盔确认键将重新启用。

蓝图

_images/7.10.26.png

输入: 无

输出: 无

返回值: 无

PXR Disable Enter Key

通过该蓝图节点可以屏蔽头盔确认键,调用该接口后,头盔确认键将停用。

蓝图

_images/7.10.27.png

输入: 无

输出: 无

返回值: 无

PXR Disable Volume Key

通过该蓝图节点可以屏蔽头盔音量键,调用该接口后,头盔音量键将停用。

蓝图

_images/7.10.28.png

输入: 无

输出

返回值: 无

PXR Enable Volume Key

通过该蓝图节点可以取消屏蔽头盔音量键,调用该接口后,头盔确认键将启用。

蓝图

_images/7.10.29.png

输入: 无

输出

返回值: 无

PXR Disable Back Key

通过该蓝图节点可以屏蔽头盔返回键,调用该接口后,头盔返回键将停用。

蓝图

_images/7.10.30.png

输入: 无

输出: 无

返回值: 无

PXR Enable Back Key

通过该蓝图节点可以取消屏蔽头盔返回键,调用该接口后,头盔返回键将启用。

蓝图

_images/7.10.32.png

输入: 无

输出: 无

返回值: 无

PXR Get Device SN

通过该蓝图节点可以获取头戴的SN号。

蓝图

_images/7.10.33.png

输入: 无

输出: 无

返回值

  • FString类型:
    • SN号字符串

PXR Get Current Brightness

通过该蓝图节点可以获取头戴当前的亮度值。

蓝图

_images/7.10.34.png

输入: 无

输出: 无

返回值

  • int类型:
    • 当前亮度的数值(范围:0-255)

PXR Set Brightness

通过该蓝图节点可以设置头戴当前的亮度值。注:首次调用会提示系统设置权限请求。

蓝图

_images/7.10.35.png

输入

  • int类型:
    • Brightness:亮度的数值(范围:0-255)

输出: 无

返回值: 无

PXR Get Current Volume

通过该蓝图节点可以获取头戴的当前音量。

蓝图

_images/7.10.36.png

输入: 无

输出

  • int类型:
    • 当前音量的数值(范围:1-15)

返回值: 无

PXR Get Max Volume

通过该蓝图节点可以获取头戴的最大音量。

蓝图

_images/7.10.37.png

输入: 无

输出: 无

返回值

  • int类型:
    • 当前音量的最大值

PXR Set Volume

通过该蓝图节点可以设置头戴的音量。

蓝图

_images/7.10.38.png

输入

  • int类型:
    • Volume:音量的数值(范围:1-15)

输出: 无

返回值: 无

PXR Volume Up

通过该蓝图节点可以增大头戴的音量。

蓝图

_images/7.10.39.png

输入: 无

输出: 无

返回值: 无

PXR Volume Down

通过该蓝图节点可以减小头戴的音量。

蓝图

_images/7.10.40.png

输入: 无

输出: 无

返回值: 无

PXR Kill Background Apps with White List

通过该蓝图节点,可以清除后台应用,传入的白名单不会被清除。

蓝图

_images/7.10.41.png

输入

  • 字符串数组类型(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

通过该蓝图节点,可以控制设备关机重启,通过绑定回调事件,获取设置的结果。

蓝图

_images/7.10.43.png

输入

  • 枚举类型:
    • Device Control Enum(EDeviceControlEnum):
      • DEVICE_CONTROL_REBOOT (“Device Reboot”):设备重启
      • DEVICE_CONTROL_SHUTDOWN (“Device ShutDown”):设备关闭
  • delegate类型:
    • Set Device Action Delegate:注册设备控制回调事件,如下图所示:
_images/7.10.44.png
  • 回调事件参数:

    • int类型:
      • 0:成功
      • 1:失败

输出: 无

返回值: 无

PXR App Manager

通过该蓝图节点可以静默安装或卸载应用,通过绑定回调事件,获取设置的结果。

蓝图

_images/7.10.45.png

输入

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

    • int类型:
      • 0:成功
      • 1:失败

输出: 无

返回值: 无

PXR Screen On

通过该蓝图接口可以控制设备亮屏。

蓝图

_images/7.10.47.png

输入: 无

输出: 无

返回值: 无

PXR Screen Off

通过该蓝图接口可以控制设备灭屏。注:首次调用该接口会提示电源管理权限请求。

蓝图

_images/7.10.48.png

输入: 无

输出: 无

返回值: 无