6 API接口函数一览

6.1 获取版本信息

UPvr_GetUnitySDKVersion

函数名:public static string UPvr_GetUnitySDKVersion()

功能:获取SDK版本号

参数:无

返回值:SDK版本号

调用方式:Pvr_UnitySDKAPI.System.UPvr_GetUnitySDKVersion()

6.2 Sensor跟踪相关

UPvr_StartSensor

函数名:public static int UPvr_StartSensor(int index)

功能:开启sensor跟踪

参数:0

返回值:0: 调用成功;1:调用失败

调用方式:Pvr_UnitySDKAPI. Sensor. UPvr_StartSensor(index)

UPvr_ResetSensor

函数名:public static int UPvr_ResetSensor (int index)

功能:重置sensor跟踪,方向由系统决定,默认重置水平和垂直方向

参数:0

返回值:0: 调用成功;1:调用失败

调用方式:Pvr_UnitySDKAPI. Sensor. UPvr_ResetSensor (index)

UPvr_OptionalResetSensor

函数名:public static int UPvr_OptionalResetSensor (int index, int resetRot, int resetPos)

功能:重置sensor姿态和位置

参数:index:0 resetRot:姿态 resetPos:位置 0:不重置 1:重置

返回值:0: 调用成功;1:调用失败

调用方式:Pvr_UnitySDKAPI. Sensor. UPvr_OptionalResetSensor (0,1,1)

6.3 手柄相关

UPvr_GetControllerPower

函数名:public static int UPvr_GetControllerPower(int hand)

功能:获取手柄电量

参数:对于Goblin和G2、G2 4K,请传入0;对于Pico Neo,则对应相应的手柄0/1(对于Pico Neo,0/1为手柄的索引号,0代表第一个绑定的手柄,1代表第二个绑定的手柄)

返回值:Goblin、G2: 0-4,Pico Neo: 1-9

调用方式:Pvr_UnitySDKAPI. Controller .UPvr_GetControllerPower(int hand)

changeMainControllerCallback

函数名:public static void changeMainControllerCallback (string index)

功能:主控手改变的回调

参数:0/1代表当前主控手柄改变为哪个(主控手柄为为启用射线参与UI交互的手柄,其与手柄的索引号并无特定关系)

返回值:无

调用方式:Pvr_ControllerManager.ChangeMainControllerCallBackEvent += XXXXX

UPvr_GetControllerAbility

函数名:public static int UPvr_GetControllerAbility(int hand)

功能:获取当前Pico Neo手柄支持3Dof还是6Dof

参数:0/1(对于Pico Neo,0/1为手柄的索引号,0代表第一个绑定的手柄,1代表第二个绑定的手柄)

返回值:0为调用失败,1为6Dof,2为3Dof

调用方式:Pvr_UnitySDKAPI.Controller. UPvr_GetControllerAbility(int hand)

setControllerStateChanged

函数名:public static void setControllerStateChanged (string state)

功能:Pico Neo 手柄连接状态变化的回调

参数:格式为(x,x)第一个数字是手柄序号,第二个数字是手柄连接状态,例如0,0 即为0手柄断开 0,1即为0手柄连接上

返回值:无

调用方式:Pvr_ControllerManager.SetControllerStateChangedEvent += XXXXX

UPvr_GetControllerState

函数名:public static ControllerState UPvr_GetControllerState(int hand)

功能:获取Controller连接状态

参数:对于Goblin,G2、G2 4K请传入0;对于Pico Neo,则对应相应的手柄0/1

返回值:连接状态(注意:对于Pico Neo使用一个手柄的情况,因当前手柄的索引不便确定,建议调用两次判定连接状态)

调用方式:Pvr_UnitySDKAPI.Controller.UPvr_GetControllerState(hand)

ResetController

函数名:public static void ResetController(int num)

功能:重置手柄姿态

参数:对于Goblin,G2、G2 4K请传入0;对于Pico Neo,则对应相应的手柄0/1

返回值:无

调用方式:Pvr_ControllerManager.ResetController(num)

StartUpgrade

函数名:public static bool StartUpgrade ()

功能:开始升级手柄

参数:无

返回值:true:成功 false:失败

调用方式:Pvr_ControllerManager.StartUpgrade()

GetBLEVersion

函数名:public static bool StartUpgrade ()

功能:获取BLE版本(不适用于G2)

参数:无

返回值:BLE版本

调用方式:Pvr_ControllerManager.GetBLEVersion()

setupdateFailed

函数名:public static void setupdateFailed()

功能:升级失败的回调

参数:无

返回值:无

调用方式:可在此方法内直接增加逻辑或者使用delegate来调用

setupdateSuccess

函数名:public static bool setupdateSuccess()

功能:升级成功的回调(不适用于G2)

参数:无

返回值:无

调用方式:可在此方法内直接增加逻辑或者使用delegate来调用

setupdateProgress

函数名:public static void setupdateProgress (string progress)

功能:升级进度的回调

参数:进度0-100

返回值:无

调用方式:可在此方法内直接增加逻辑或者使用delegate来调用

UPvr_GetControllerQUA

函数名:public static Quaternion UPvr_GetControllerQUA (int hand)

功能:获取手柄姿态

参数:对于Goblin,G2、G2 4K请传入0;对于Pico Neo,则对应相应的手柄0/1

返回值:四元数,手柄姿态

调用方式:Pvr_UnitySDKAPI.Controller.UPvr_GetControllerQUA(hand)

UPvr_GetControllerPOS

函数名:public static Vector3 UPvr_GetControllerPOS (int hand)

功能:获取手柄位置

参数:对于Goblin,G2、G2 4K请传入0;对于Pico Neo,则对应相应的手柄0/1

返回值:3维向量,手柄位置

调用方式:Pvr_UnitySDKAPI.Controller.UPvr_GetControllerPOS(hand)

UPvr_GetMainHandNess

函数名:public static int UPvr_GetMainHandNess()

功能:获取当前的主控手柄索引

参数:无

返回值:0/1 (注意:Pico Neo专有,在bind手柄服务成功之后才可返回正确值,我们的SDK会在应用启动时Bind手柄服务,建议开发者利用Bind回调函数判断是否bind成功)

调用方式:Pvr_UnitySDKAPI.Controller.UPvr_GetMainHandNess()

UPvr_SetMainHandNess

函数名:public static void UPvr_SetMainHandNess(int hand)

功能:设置当前的主控手柄

参数:0/1

返回值:无

调用方式:Pvr_UnitySDKAPI.Controller.UPvr_SetMainHandNess(hand)

UPvr_GetKey

函数名:public static bool UPvr_GetKey (int hand,Pvr_KeyCode key)

功能:判断按键是否按住

参数:0/1,Pvr_KeyCode

返回值:true:按住 false :未按住

调用方式:Pvr_UnitySDKAPI.Controller.UPvr_GetKey(hand , key)

UPvr_GetKeyDown

函数名:public static bool UPvr_GetKeyDown (int hand,Pvr_KeyCode key)

功能:判断按键是否按下

参数:0/1,Pvr_KeyCode

返回值:true:按下一次 false:未按下

调用方式:Pvr_UnitySDKAPI.Controller.UPvr_GetKeyDown (hand , key)

UPvr_GetKeyUp

函数名:public static bool UPvr_GetKeyUp (int hand,Pvr_KeyCode key)

功能:判断按键是否抬起

参数:0/1,Pvr_KeyCode

返回值:true:抬起一次 false:未抬起

调用方式:Pvr_UnitySDKAPI.Controller.UPvr_GetKeyUp (hand , key)

UPvr_GetKeyLongPressed

函数名:public static bool UPvr_GetKeyLongPressed (int hand,Pvr_KeyCode key)

功能:判断按键是否被长按

参数:0/1,Pvr_KeyCode

返回值:true:长按按键达到0.5秒 false:未达到长按时间

调用方式:Pvr_UnitySDKAPI.Controller.UPvr_GetKeyLongPressed (hand , key)

UPvr_IsTouching

函数名:public static bool UPvr_IsTouching (int hand)

功能:判断是否触摸了触摸板

参数:0/1

返回值:true:正在触摸 false:没有触摸

调用方式:Pvr_UnitySDKAPI.Controller.UPvr_IsTouching(hand)

UPvr_GetSwipeDirection

函数名:public static SwipeDirection UPvr_GetSwipeDirection(int hand)

功能:获取滑动手势的状态

参数:0/1

返回值:SwipeDirection

调用方式:Pvr_UnitySDKAPI.Controller.UPvr_GetSwipeDirection(hand)

UPvr_GetTouchPadPosition

函数名:public static Vector2 UPvr_GetTouchPadPosition (int hand)

功能:获取触摸板的touch值

参数:0/1

返回值:触摸板的touch值,Pico Goblin与Pico Neo相同,详见图5.4

调用方式:Pvr_UnitySDKAPI.Controller.UPvr_GetTouchPadPosition(hand)

UPvr_GetTouchPadClick

函数名:public static TouchPadClick UPvr_GetTouchPadClick(int hand)

功能:触摸板的模拟点击功能(把触摸板分为4块,模拟游戏手柄的上下左右功能)

参数:0/1

返回值:TouchPadClick

调用方式:Pvr_UnitySDKAPI.Controller.UPvr_GetTouchPadClick (hand)

UPvr_GetControllerTriggerValue

函数名:public static int UPvr_GetControllerTriggerValue(int hand)

功能:获取扳机的输入值

参数:0/1

返回值:0~255(适用于Neo Controller)

调用方式:Pvr_UnitySDKAPI.Controller.UPvr_GetControllerTriggerValue(hand)

VibateController

函数名:public void VibateController(int hand, int strength)

功能:Pico Neo手柄的振动接口

参数:hand:0,1 振动强度strength:0-255

返回值:无

调用方式:Pvr_ControllerManager.controllerlink. VibateController(hand,strength)

UPvr_GetDeviceType

函数名:public static int UPvr_GetDeviceType ()

功能:获取已连接的手柄类型

参数:无

返回值:0:无连接 1:Goblin 2:Neo 3:G2、G2 4K (假如返回值为0,需要同时调用下手柄连接状态,两个值配合来决定是否启用头控)

调用方式:Pvr_UnitySDKAPI.Controller. UPvr_GetDeviceType ();

6.4 电量音量亮度服务相关

UPvr_InitBatteryVolClass

函数名:public bool UPvr_InitBatteryVolClass()

功能:初始化电量音量亮度服务

参数:无

返回值:true: 成功 false:失败 (在使用电量音量亮度等服务前请首先调用此接口初始化)

调用方式:Pvr_UnitySDKAPI.VolumePowerBrightness.UPvr_InitBatteryVolClass()

UPvr_StartAudioReceiver

函数名:public bool UPvr_StartAudioReceiver ()

功能:开启音量服务

参数:无

返回值:true: 成功 false:失败

调用方式:Pvr_UnitySDKAPI.VolumePowerBrightness.UPvr_StartAudioReceiver ()

UPvr_SetAudio

函数名:public void UPvr_SetAudio(string s)

功能:音量发生变化时的回调

参数:当前音量

返回值:无

调用方式:可在此方法内直接增加逻辑或者使用delegate来调用

UPvr_StopAudioReceiver

函数名:public void UPvr_StopAudioReceiver ()

功能:关闭音量服务

参数:无

返回值:true: 成功 false:失败

调用方式:Pvr_UnitySDKAPI.VolumePowerBrightness.UPvr_StopAudioReceiver()

UPvr_StartBatteryReceiver

函数名:public void UPvr_StartBatteryReceiver ()

功能:开启电量服务

参数:无

返回值:true: 成功 false:失败

调用方式:Pvr_UnitySDKAPI.VolumePowerBrightness.UPvr_StartBatteryReceiver()

UPvr_SetBattery

函数名:public void UPvr_SetBattery(string s)

功能:电量发生变化时的回调

参数:当前的电量(范围是0.00~1.00)

返回值:无

调用方式:可在此方法内直接增加逻辑或者使用delegate来调用

UPvr_StopBatteryReceiver

函数名:public bool UPvr_StopBatteryReceiver ()

功能:关闭电量服务

参数:无

返回值:true: 成功 false:失败

调用方式:Pvr_UnitySDKAPI.VolumePowerBrightness.UPvr_StopBatteryReceiver()

UPvr_GetMaxVolumeNumber

函数名:public int UPvr_GetMaxVolumeNumber ()

功能:获取最大音量

参数:无

返回值:音量最大值

调用方式:Pvr_UnitySDKAPI.VolumePowerBrightness.UPvr_GetMaxVolumeNumber ()

UPvr_GetCurrentVolumeNumber

函数名:public int UPvr_GetCurrentVolumeNumber ()

功能:获取当前音量

参数:无

返回值:当前音量值(范围是0~15)

调用方式:Pvr_UnitySDKAPI.VolumePowerBrightness.UPvr_GetCurrentVolumeNumber ()

UPvr_VolumeUp

函数名:public bool UPvr_VolumeUp ()

功能:提高音量

参数:无

返回值:true: 成功 false:失败

调用方式:Pvr_UnitySDKAPI.VolumePowerBrightness.UPvr_VolumeUp ()

UPvr_VolumeDown

函数名:public bool UPvr_VolumeDown ()

功能:降低音量

参数:无

返回值:true: 成功 false:失败

调用方式:Pvr_UnitySDKAPI.VolumePowerBrightness.UPvr_VolumeDown ()

UPvr_SetVolumeNum

函数名:public bool UPvr_SetVolumeNum(int volume)

功能:设置音量

参数:设置的音量大小数值(音量值的范围是0~15)

返回值:true: 成功 false:失败

调用方式:Pvr_UnitySDKAPI.VolumePowerBrightness. UPvr_SetVolumeNum(volume)

UPvr_GetScreenBrightnessLevel

函数名:public bool UPvr_GetScreenBrightnessLevel ()

功能:获取当前屏幕亮度等级

参数:无

返回值:int 数组。第一位是支持的总亮度级别,第二位是当前亮度等级,从第三位开始至结束位是亮度等级区间值

调用方式:Pvr_UnitySDKAPI.VolumePowerBrightness.UPvr_GetScreenBrightnessLevel()

UPvr_SetScreenBrightnessLevel

函数名:public bool UPvr_SetScreenBrightnessLevel (int vrBrightness, int level)

功能:设置屏幕亮度

参数:vrBrightness:亮度模式;level:亮度值(亮度等级值)如果vrBrightness传入1,level 传入亮度等级; 如果vrBrightness传入0, 代表采用系统 默认的亮度设置模式,level可以设置1~255之间的值。

返回值:无

调用方式:Pvr_UnitySDKAPI.VolumePowerBrightness.UPvr_SetScreenBrightnessLevel (vrBrightness,level)

UPvr_GetCommonBrightness

函数名:public int UPvr_GetCommonBrightness ()

功能:获取当前通用设备亮度值

参数:无

返回值:当前亮度值(亮度值的范围是0~255)

调用方式:Pvr_UnitySDKAPI.VolumePowerBrightness.UPvr_GetCommonBrightness()

UPvr_SetCommonBrightness

函数名:public bool UPvr_SetCommonBrightness(int brightness)

功能:设置当前通用设备亮度值

参数:亮度值(亮度值的范围是0~255

返回值:true:成功, false:失败

调用方式:Pvr_UnitySDKAPI.VolumePowerBrightness.UPvr_SetCommonBrightness (brightness)

6.5 头戴距离传感器相关

UPvr_InitPsensor

函数名:public static void UPvr_InitPsensor()

功能:初始化距离传感器

参数:无

返回值:无

调用方式:Pvr_UnitySDKAPI. Sensor. UPvr_InitPsensor ()

UPvr_GetPsensorState

函数名:public static int UPvr_GetPsensorState()

功能:获得头戴距离传感器的状态

参数:无

返回值:带上头戴时返回值是0,远离时返回值是1

调用方式: Pvr_UnitySDKAPI. Sensor. UPvr_GetPsensorState()(注意:获得Psensor的状态之前需要调用UPvr_InitPsensor进行初始化(初始化一次即可)

UPvr_UnregisterPsensor

函数名:public static void UPvr_UnregisterPsensor ()

功能:释放距离传感器

参数:无

返回值:无

调用方式: Pvr_UnitySDKAPI. Sensor. UPvr_UnregisterPsensor ()

6.6 硬件设备相关

UPvr_GetDeviceMode

函数名:public static string UPvr_GetDeviceMode ()

功能:获得设备类型

参数:无

返回值:SystemInfo.deviceModel

调用方式: Pvr_UnitySDKAPI. System. UPvr_GetDeviceMode ()

UPvr_GetDeviceSN

函数名:public static string UPvr_GetDeviceSN ()

功能:获得设备SN串号

参数:无

返回值:设备SN串号

调用方式: Pvr_UnitySDKAPI. System. UPvr_GetDeviceSN ()

UPvr_ShutDown

函数名:public static void UPvr_ShutDown()

功能:关机

参数:无

返回值:无

调用方式: Pvr_UnitySDKAPI. System. UPvr_ShutDown ()

UPvr_Reboot

函数名:public static void UPvr_Reboot

功能:重启

参数:无

返回值:无

调用方式: Pvr_UnitySDKAPI. System. UPvr_Reboot ()

UPvr_Sleep

函数名:public static void UPvr_Sleep ()

功能:关屏

参数:无

返回值:无

调用方式: Pvr_UnitySDKAPI. System. UPvr_Sleep ()

注意:用UPvr_ShutDown、UPvr_Reboot、UPvr_Sleep接口,需要在AndroidManifest中添加如下权限,并且需要系统签名:

android:sharedUserId="android.uid.system"
<uses-permission android:name="android.permission.DEVICE_POWER" />