6 API接口函数一览¶
6.1 通用函数库¶
SDK支持如下红点标记的引擎中的VR通用函数:
图6.1 支持的通用函数
他们的详细用法请参考UE4官方文档 https://docs.unrealengine.com/en-us/ 。
其中:
- Reset Orientation and Position节点,仅支持重置正方向的功能,函数节点中的Yaw参数值不起作用。
- 使用Get HMDWorn State,需要在项目设置-PicoMobile菜单里,勾选“Enable Psensor”选项
6.2 专用函数库¶
对于音量、亮度等系统功能,SDK也以蓝图节点的形式提供了相应的API,在事件图表中单击鼠标右键,进入Pico Mobile子项,即可看到这些API:
图6.2 系统接口
这些API的详细说明如下:
功能 | 获取头戴的当前姿态 | |
输入 | 无 | |
输出 | 无 | |
返回值 | 头戴的当前姿态 |
功能 | 获取头戴的当前位置 | |
输入 | 无 | |
输出 | 无 | |
返回值 | 头戴的当前位置 |
功能 | 获取FOV | |
输入 | 无 | |
输出 | 无 | |
返回值 | FOV |
功能 | 获取系统亮度 | |
输入 | 无 | |
输出 | 无 | |
返回值 | 当前系统的亮度(0~255) |
功能 | 设置系统亮度 | |
输入 | 设置的目标亮度(0~255) | |
输出 | 无 | |
返回值 | true-设置成功,false-设置失败 |
功能 | 增大系统音量(系统音量范围为0~15,调用一次增加1) | |
输入 | 无 | |
输出 | 无 | |
返回值 | 无 |
功能 | 减小系统音量(系统音量范围为0~15,调用一次增加1) | |
输入 | 无 | |
输出 | 无 | |
返回值 | 无 |
功能 | 获取当前的系统音量 | |
输入 | 无 | |
输出 | 无 | |
返回值 | 当前的系统音量 |
功能 | 设置系统音量 | |
输入 | 想要设置的系统音量(0~15) | |
输出 | 无 | |
返回值 | 无 |
功能 | 获取最大音量 | |
输入 | 无 | |
输出 | 无 | |
返回值 | 表示最大音量的数 |
功能 | 获取设备的序列号 | |
输入 | 无 | |
输出 | 设备序列号 | |
返回值 | 无 |
功能 | 获取设备的类型 | |
输入 | 无 | |
输出 | 设备Model (Pico Neo2 — Pico Neo2) (Pico G2— Pico G2) (Pico G2 4K— Pico G2 4K) | |
返回值 | 无 |
功能 | 获取Psensor状态(需在项目设置中勾选”Enable Psensor?”) | |
输入 | 无 | |
输出 | -1-获取失败(未勾选”Enable Psensor?”)0-靠近设备1-远离设备 | |
返回值 | 无 |
功能 | 获取系统设置的惯用手 | |
输入 | 无 | |
输出 | 无 | |
返回值 | 0:右手、1:左手 |
功能 | 开启/关闭Foveation Rendering功能 | |
输入 | 是否开启FFR | |
输出 | 无 | |
返回值 | True:成功,False:失败 |
功能 | 获取Foveation Rendering等级 | |
输入 | 无 | |
输出 | Foveation Rendering等级 | |
返回值 | True:成功,False:失败 |
功能 | 设置Foveation Rendering等级 | |
输入 | Foveation Rendering等级 | |
输出 | 无 | |
返回值 | True:成功,False:失败 |
功能 | 设置Foveation Rendering参数 | |
输入 | Foveation Rendering控制参数 | |
输出 | 无 | |
返回值 | True:成功,False:失败 |
功能 | 获取设备刷新率 | |
输入 | 无 | |
输出 | 设备刷新率 | |
返回值 | True:成功,False:失败 |
功能 | 获取设备GPU利用率(仅Neo2支持) | |
输入 | 无 | |
输出 | 设备GPU利用率(0~1) | |
返回值 | True:成功,False:失败 |
功能 | 获取眼球的位置和方向(仅Neo2 Eye支持,需在项目设置中勾选 “Enable Eye Tracking”) | |
输入 | 无 | |
输出 | 眼球的位置和方向 | |
返回值 | True:成功,False:失败 |
功能 | 设置安全边界网格是否常驻显示(仅Neo2,Neo2 Eye支持) | |
输入 | Bool类型 true:开启,false:关闭 | |
输出 | 无 | |
返回值 | 无 |
功能 | 获取安全边界网格是否常驻显示(仅Neo2,Neo2 Eye支持) | |
输入 | 无 | |
输出 | 无 | |
返回值 | Bool类型 true:开启,false:关闭 |
功能 | 获取自定义安全边界PlayArea的尺寸 | |
输入 | Bool类型:是否安全区内接四边形 | |
输出 | 无 | |
返回值 | x:PlayArea长边,y:1,z:PlayArea短边,如果是原地安全区,V3为(0,0,0) |
功能 | 设置相机图像大小 | |
输入 | IntPoint(x,y),建议比例1:1 默认大小(640,640) | |
输出 | 无 | |
返回值 | Bool 是否成功 |
功能 | 获取相机图像 | |
输入 | CameraType: Left 左相机,Right 右相机 | |
输出 | 无 | |
返回值 | Texture2D图像 Bool 是否成功 |
功能 | 安全边界检测是否打开(仅Neo2,Neo2 Eye支持) | |
输入 | 无 | |
输出 | Bool值 | |
返回值 | True:安全边界检测打开,False:安全边界检测关闭 |
功能 | 系统是否存在有效安全边界(仅Neo2,Neo2 Eye支持) | |
输入 | 无 | |
输出 | Bool值 | |
返回值 | True:存在有效边界,False:不存在有效边界 |
功能 | 获取安全区坐标值数组 | |
输入 | Bool类型:是否安全区内接四边形 | |
输出 | 安全区坐标值数组,安全区坐标数量 | |
返回值 | 安全区坐标数量 |
功能 | 返回追踪节点触发安全边界的状态 | |
输入 | 枚举节点:头、手,Bool类型:是否安全区内接四边形 | |
输出 | IsTriggering:是否节点触碰到边界 Closest Distance:最近距离 Ppos:最近点的坐标 Npos:最近点坐标的法线 | |
返回值 | True:成功,False:失败 |
功能 | 返回追踪坐标触发安全边界的状态 | |
输入 | 枚举节点:头、手,Bool类型:是否安全区内接四边形 | |
输出 | IsTriggering:是否节点触碰到边界 Closest Distance:最近距离 Ppos:最近点的坐标 Npos:最近点坐标的法线 | |
返回值 | True:成功,False:失败 |
6.3 系统相关接口¶
通过系统相关接口,开发者可以获取、设置系统的一些配置,开发者可根据需要酌情使用(一般情况下无需使用此部分功能)。
支持设备:
设备 | PUI版本 |
---|---|
G2 4K/G2 4K E/G2 4K Plus | 4.0.3及以上 |
Neo 3 Pro/Neo 3 Pro Eye | 全版本 |
在调用系统接口之前,需要在你需要调用系统接口的蓝图中添加“PicoSystemToolService”组件,系统相关接口均是在该组件内实现。
图6.3添加PicoSystemToolService组件
图6.4调用示例
6.3.1普通接口¶
功能 | 获取设备信息 | |
输入 | 想要获取设备信息类型 | |
输出 | 无 | |
返回值 | 设备信息 |
设备信息类型详见下表:
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 |
功能 | 连接指定WIFI | |
输入 | WifiName:WIFI名称;WifiPSD:WIFI密码;Ext:扩展预留; Delegate:连接回调,true:成功,false:失败。 | |
输出 | 无 | |
返回值 | 无 |
功能 | 关闭连接指定WIFI功能 | |
输入 | Delegate:连接回调,true:成功,false:失败。 | |
输出 | 无 | |
返回值 | 无 |
功能 | Home按键功能设置,重新定义Home键,会影响系统定义的Home键功能, 请开发者酌情使用。 | |
输入 | EventEnum:按键事件类型;FunctionEnum:功能类型; Delegate:连接回调,true:成功,false:失败。 | |
输出 | 无 | |
返回值 | 无 |
按键事件类型详见下表:
EHomeEventEnum | 类型含义 |
HOME_SINGLE_CLICK (“Single Click”) | 单击Home键 |
HOME_DOUBLE_CLICK (“Double Click”) | 双击Home键 |
HOME_LONG_CLICK (“Long Click”) | 长按Home键 (不适用于neo3) |
按键功能类型详见下表:
以下参数适用于G2 和 Neo 2系列
EHomeFuncEnum | 类型含义 |
VALUE_HOME_GO_TO_SETTING (“Open Setting”) | 打开设置 |
VALUE_HOME_BACK (“Back”) | 返回 |
VALUE_HOME_RECENTER ( “Recenter”) | 校准 |
VALUE_HOME_OPEN_APP (“Open APP”) | 打开指定APP |
VALUE_HOME_DISABLE (“Disable”) | 禁用Home键 |
VALUE_HOME_GO_TO_HOME (“Open Launcher”) | 打开Launcher |
VALUE_HOME_SEND_BROADCAST (“Send Broadcast”) | 发送Home键点击广播 |
VALUE_HOME_CLEAN_MEMORY (“Clear Memory”) | 清空后台 |
以下参数适用于Neo 3系列
EHomeFuncEnum | 类型含义 |
VALUE_HOME_GO_TO_SETTING (“Open Setting”) | 打开设置 |
VALUE_HOME_RECENTER ( “Recenter”) | 校准 |
VALUE_HOME_DISABLE (“Disable”) | 禁用Home键 |
VALUE_HOME_GO_TO_HOME (“Open Launcher”) | 打开Launcher |
功能 | Home按键功能扩展设置 | |
输入 | EventEnum:按键事件类型;FunctionEnum:功能类型; TimeSetup: 只有双击和长按事件有事件才设置按键间隔时间,短按传0即可; Package:当Function为打开指定APP时,传入指定包名; ClassName:当Function为打开指定APP时,传入指定类名; Delegate:连接回调,true:成功,false:失败。 | |
输出 | 无 | |
返回值 | 无 |
功能 | Power按键设置 | |
输入 | IsSingleTap:单击事件为True,双击事件为false; Enable:按键使能状态; Delegate:连接回调,0:成功,1:失败。 | |
输出 | 无 | |
返回值 | 无 |
功能 | 屏幕关闭超时设置 | |
输入 | TimeEnum:屏幕关闭时间; Delegate:连接回调,0:成功,1:失败,10:设置的时间过大。 | |
输出 | 无 | |
返回值 | 无 |
功能 | 系统休眠超时设置 | |
输入 | TimeEnum:系统休眠时间; | |
输出 | 无 | |
返回值 | 无 |
功能 | 常用系统开关设置 | |
输入 | SystemFunction:功能类型; SwitchEnum:开关值; Ext:扩展预留; | |
输出 | 无 | |
返回值 | 无 |
功能类型详见下表:
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”) | Neo2 6Dof安全区永久关闭开关 |
SFS_GLOBAL_CALIBRATION (“Global Calibration”) | 全局校准开关(仅G2系列有,Neo2系列无) |
SFS_Auto_Calibration (“Auto Calibration”) | 自动校准开关 |
SFS_USB_BOOT (“USB Boot”) | USB插入启动开关 |
功能 | USB配置模式设置(MTP、充电) | |
输入 | UsbConfigModeEnum:MTP、充电; Ext:扩展预留; | |
输出 | 无 | |
返回值 | 无 |
功能 | 请求WakeLock | |
输入 | 无 | |
输出 | 无 | |
返回值 | 无 |
功能 | 释放WakeLock接口 | |
输入 | 无 | |
输出 | 无 | |
返回值 | 无 |
功能 | 向Data/local/tmp下写配置文件 | |
输入 | Path:写配置文件的路径,Content:写配置文件的内容 Delegate:连接回调,true:成功,false:失败。 | |
输出 | 无 | |
返回值 | 无 |
功能 | 恢复默认按键配置 | |
输入 | Delegate:连接回调,true:成功,false:失败。 | |
输出 | 无 | |
返回值 | 无 |
功能 | 取消屏蔽头盔确认键 | |
输入 | 无 | |
输出 | 无 | |
返回值 | 无 |
功能 | 屏蔽头盔确认键 | |
输入 | 无 | |
输出 | 无 | |
返回值 | 无 |
功能 | 取消屏蔽头盔音量键 | |
输入 | 无 | |
输出 | 无 | |
返回值 | 无 |
功能 | 屏蔽头盔音量键 | |
输入 | 无 | |
输出 | 无 | |
返回值 | 无 |
功能 | 取消屏蔽头盔返回键 | |
输入 | 无 | |
输出 | 无 | |
返回值 | 无 |
功能 | 屏蔽头盔返回键 | |
输入 | 无 | |
输出 | 无 | |
返回值 | 无 |
6.3.2受保护接口¶
注意: 以下接口为受保护接口,调用以下接口前,需要在项目设置->插件->PicoMobile中勾选“Use Pico Advance Interface”选项。 勾选了该选项后,App将无法上架Pico Store,如果您的应用需要通过Pico Store分发,请勿勾选“Use Pico Advance Interface”选项和使用以下接口。
功能 | 控制设备关机重启 | |
输入 | DeviceControllerEnum:控制设备关机或重启; Delegate:连接回调,0:成功,1:失败。 | |
输出 | 无 | |
返回值 | 无 | |
功能 | 应用静默安装或卸载 | |
输入 | PackageControlEnum:安装或卸载; Path:静默安装的安装包路径或静默卸载时的应用包名 Ext:扩展预留接口 Delegate:连接回调,0:成功,1:失败。 | |
输出 | 无 | |
返回值 | 无 | |
功能 | 控制设备亮屏 | |
输入 | 无 | |
输出 | 无 | |
返回值 | 无 | |
功能 | 控制设备灭屏 | |
输入 | 无 | |
输出 | 无 | |
返回值 | 无 |