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、Neo2,0/1为手柄的索引号,对于Neo,0代表第一个绑定的手柄,1代表第二个绑定的手柄,对于Neo2,0代表左手柄,1代表右手柄)

返回值:Goblin、G2: 0-4,Pico Neo: 1-10,Neo2:0-100

调用方式: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、Neo2手柄支持3Dof还是6Dof

参数:0/1

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

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

setControllerStateChanged

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

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

参数:格式为(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、Neo2,则对应相应的手柄0/1

返回值:连接状态

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

ResetController

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

功能:重置手柄姿态(该接口不适用于Neo2)

参数:对于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、Neo2,则对应相应的手柄0/1

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

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

UPvr_GetControllerPOS

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

功能:获取手柄位置

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

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

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

UPvr_GetMainHandNess

函数名:public static int UPvr_GetMainHandNess()

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

参数:无

返回值:0/1 (注意:Pico Neo、Neo2专有,在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_GetKeyClick

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

功能:判断按键是否按下抬起了一次

参数:0/1,Pvr_KeyCode

返回值:true:0.5秒内完成按下抬起动作 false:超时

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

UPvr_IsTouching

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

功能:判断是否触摸了触摸板(该接口不适用于Neo2)

参数: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相同,详见图6.4

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

UPvr_GetAxis2D

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

功能:获取摇杆的拨动值

参数:0/1

返回值:范围为-1到1,适用于Pico Neo2手柄

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

UPvr_GetTouchPadClick

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

功能:触摸板的模拟点击功能(把触摸板分为4块,模拟游戏手柄的上下左右功能)(该接口不适用于Neo2)

参数:0/1

返回值:TouchPadClick

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

UPvr_GetControllerTriggerValue

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

功能:获取扳机的输入值

参数:0/1

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

调用方式: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_VibrateNeo2Controller

函数名:public void UPvr_VibrateNeo2Controller (float strength, int time, int hand)

功能:Neo2手柄的振动接口

参数:震动强度strength:0-1,持续时间单位毫秒time:0-65535,手柄IDhand:0/1

返回值:无

调用方式:Pvr_UnitySDKAPI.Controller.UPvr_VibrateNeo2Controller(float strength, int time, int hand)

UPvr_GetDeviceType

函数名:public static int UPvr_GetDeviceType ()

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

参数:无

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

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

UPvr_GetControllerBindingState

函数名:public static int UPvr_GetControllerBindingState(int id)

功能:获取手柄连接状态

参数:int id

返回值:-1:Error 0:未连接 1:已连接

调用方式:Pvr_UnitySDKAPI.Controller. UPvr_GetControllerBindingState(int id);

UPvr_GetAngularVelocity

函数名:public static Vector3 UPvr_GetAngularVelocity (int id)

功能:获取手柄的角速度

参数:int id 手柄ID

返回值:角加速度,单位rad/s

调用方式:Pvr_UnitySDKAPI.Controller. UPvr_GetAngularVelocity (int id);

UPvr_GetAcceleration

函数名:public static Vector3 UPvr_GetAcceleration (int id)

功能:获取手柄的加速度

参数:int id 手柄ID

返回值:线加速度,单位mm/s^2

调用方式:Pvr_UnitySDKAPI.Controller. UPvr_GetAcceleration (int id);

UPvr_GetVelocity

函数名:public static Vector3 float UPvr_GetVelocity (int id)

功能:获取手柄的线速度

参数:int id 手柄ID

返回值:线速度,单位mm/s

调用方式:Pvr_UnitySDKAPI.Controller. UPvr_GetVelocity (int id);

6.4 电量音量亮度服务相关

UPvr_InitBatteryVolClass

函数名:public bool UPvr_InitBatteryVolClass()

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

参数:无

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

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

UPvr_StartAudioReceiver

函数名:public bool UPvr_StartAudioReceiver (string startreceiver)

功能:开启音量服务

参数:开启音量的gameobject名字

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

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

UPvr_SetAudio

函数名:public void UPvr_SetAudio(string s)

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

参数:当前音量

返回值:无

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

UPvr_StopAudioReceiver

函数名:public bool UPvr_StopAudioReceiver ()

功能:关闭音量服务

参数:无

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

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

UPvr_StartBatteryReceiver

函数名:public bool UPvr_StartBatteryReceiver (string startreceiver)

功能:开启电量服务

参数:开启电量的gameobject名字

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

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

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 int[] 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" />

6.7 眼球追踪相关

UPvr_getEyeTrackingPos

函数名:public static Vector3 UPvr_getEyeTrackingPos ()

功能:获取当前注视点位置(该接口只适用于Neo2 Eye)

参数:无

返回值:当前注视点位置

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

UPvr_getEyeTrackingData

函数名:public static bool UPvr_getEyeTrackingData(ref EyeTrackingData trackingData)

功能:获取眼球追踪相关信息,包括睁眼闭眼等(该接口只适用于Neo2 Eye)

参数:接收结果返回的EyeTrackingData结构体变量

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

调用方式: Pvr_UnitySDKAPI.System.UPvr_getEyeTrackingData(ref trackingData)

备注:由于获取的眼球追踪数据是世界坐标系空间数据,如果您希望位置数据在镜头前方,需要进行矩阵变换,矩阵变换的方法可以参考以下代码:

bool result = Pvr_UnitySDKAPI.System.UPvr_getEyeTrackingData(ref eyePoseData);
bool dataValid = (eyePoseData.combinedEyePoseStatus & (int)pvrEyePoseStatus.kGazeVectorValid) != 0;
if (result && dataValid)
{
    //创建矩阵
    Transform target = Pvr_UnitySDKEyeManager.Instance.transform;
    Matrix4x4 mat = Matrix4x4.TRS(target.position, target.rotation, Vector3.one);

    //变换位置点
    eyePoseData.combinedEyeGazePoint = mat.MultiplyPoint(eyePoseData.combinedEyeGazePoint);

    //变换向量
    eyePoseData.combinedEyeGazeVector = mat.MultiplyVector(eyePoseData.combinedEyeGazeVector);
  }

UPvr_getEyeTrackingGazeRay

函数名:public static bool UPvr_getEyeTrackingGazeRay(ref EyeTrackingGazeRay gazeRay)

功能:获取眼球追踪视线原点和视线方向(世界坐标系)。(该接口只适用于Neo2 Eye)

参数:接收结果返回的EyeTrackingGazeRay结构体变量

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

调用方式: Pvr_UnitySDKAPI.System. UPvr_getEyeTrackingGazeRay(ref gazeRay)

备注:由于获取的视线数据是标定头戴设备的Sensor的,如果您有移动Pvr_UnitySDK的需求,并且希望在移动Pvr_UnitySDK时视线方向一直放置在摄像机前方,需要进行矩阵变换,矩阵变换的方法可以参考以下代码:

Pvr_UnitySDKAPI.System.UPvr_getEyeTrackingGazeRay(ref gazeRay);
    if(gazeRay.IsValid)
    {
        //创建矩阵
        Transform target = Pvr_UnitySDKManager.SDK.transform;
        Matrix4x4 mat = Matrix4x4.TRS(target.position, target.rotation, Vector3.one);

        //变换射线原点
        gazeRay.Origin = mat.MultiplyPoint(gazeRay.Origin);

        //变换射线方向
        gazeRay.Direction = mat.MultiplyVector(gazeRay.Direction);
            }

6.8 注视点渲染相关

GetFoveatedRenderingLevel

函数名:public static EFoveationLevel GetFoveatedRenderingLevel()

功能:获取当前注视点渲染级别

参数:无

返回值:当前注视点渲染级别

调用方式: Pvr_UnitySDKAPI. Render. GetFoveatedRenderingLevel ()

SetFoveatedRenderingLevel

函数名:public static void SetFoveatedRenderingLevel(EFoveationLevel level)

功能:设置注视点渲染级别

参数:目标注视点渲染级别,可设置Low,Med,High三种级别

返回值:无

调用方式: Pvr_UnitySDKAPI. Render. SetFoveatedRenderingLevel(level)

GetFoveatedRenderingParameters

函数名:public static void GetFoveatedRenderingParameters(ref Vector2 ffrGainValue, ref float ffrAreaValue, ref float ffrMinimumValue)

功能:获取当前注视点渲染参数

参数:注视点渲染参数

ffrGainValue:X/Y轴方向外围像素的缩减率,值越大缩减的越多

ffrAreaValue:以注视点为中心,以ffrAreaValue为半径的范围内不降低分辨率

ffrMinimumValue:纹理过滤函数的纹理坐标参数

返回值:无

调用方式: Pvr_UnitySDKAPI. Render. GetFoveatedRenderingParameters(ref ffrGainValue, ref ffrAreaValue, ref ffrMinimumValue)

SetFoveatedRenderingParameters

函数名:public static void SetFoveatedRenderingParameters(Vector2 ffrGainValue, float ffrAreaValue, float ffrMinimumValue)

功能:设置当前注视点渲染参数

参数:目标注视点渲染参数

ffrGainValue:X/Y轴方向外围像素的缩减率,值越大缩减的越多

ffrAreaValue:以注视点为中心,以ffrAreaValue为半径的范围内不降低分辨率

ffrMinimumValue:纹理过滤函数的纹理坐标参数

返回值:无

调用方式: Pvr_UnitySDKAPI. Render. SetFoveatedRenderingParameters (ffrGainValue, ffrAreaValue, ffrMinimumValue)

6.9 应用版权保护

UPvr_IsCurrentDeviceValid

函数名:public static Pvr_UnitySDKPlatformSetting.simulationType UPvr_IsCurrentDeviceValid()

功能:判断当前设备是否是有效允许的

参数:无

返回值:Pvr_UnitySDKPlatformSetting.simulationType

Null :没有启用此功能

Invalid:未经允许

Valid:允许

调用方式: Pvr_UnitySDKAPI. PlatformSettings. UPvr_IsCurrentDeviceValid ()

UPvr_AppEntitlementCheck

函数名:public static bool UPvr_AppEntitlementCheck(string appid)

功能:通过appid获取是否具有应用要求的权限

参数:appID:应用唯一标识,通过开发者平台注册应用时分配,可登录开发者平台进行查询

返回值:true:调用成功;false:调用失败

调用方式: Pvr_UnitySDKAPI. PlatformSettings. UPvr_AppEntitlementCheck(appid)

UPvr_AppEntitlementCheckExtra

函数名:public static int UPvr_AppEntitlementCheckExtra(string appid)

功能:通过appid获取是否具有应用要求的权限

参数:appID:应用唯一标识,通过开发者平台注册应用时分配,可登录开发者平台进行查询

返回值:0:success -1:invalid params -2:service not exist (低版本ROM无Service,如需限制应用在低版本ROM上运行,需对此状态做处理) -3:time out

调用方式: Pvr_UnitySDKAPI.PlatformSettings.UPvr_AppEntitlementCheckExtra(appid)

verifyAPPCallback

函数名:public static void verifyAPPCallback (string code)

功能:版权保护验证的回调(调用UPvr_AppEntitlementCheck和UPvr_KeyEntitlementCheck成功后会收到此回调)

参数: 0:通过

10:缺少包名

11:缺少appid

13:appid不匹配

20:用户未登录

21:用户未购买

31:未查询到此应用

32:用户下载应用时的sn号和本机sn号不匹配

返回值:无

调用方式:无需调用

6.10 安全区防护边界相关

UPvr_BoundaryGetConfigured

函数名:public static bool UPvr_BoundaryGetConfigured()

功能:获取当前安全区防护系统是否配置成功

参数:无

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

调用方式: Pvr_UnitySDKAPI.BoundarySystem.UPvr_BoundaryGetConfigured()

UPvr_BoundaryGetEnabled

函数名:public static bool UPvr_BoundaryGetEnabled()

功能:获取当前安全区防护系统是否开启

参数:无

返回值:true: 已启用 false:未启用

调用方式: Pvr_UnitySDKAPI.BoundarySystem.UPvr_BoundaryGetEnabled()

UPvr_BoundarySetVisible

函数名:public static void UPvr_BoundarySetVisible(bool value)

功能:强制设置安全区防护边界是否可见(注意:安全区正常触发或用户通过系统设置安全区将会覆盖该接口的操作)

参数:value:安全区是否可见

返回值:无

调用方式: Pvr_UnitySDKAPI.BoundarySystem.UPvr_BoundarySetVisible(bool)

UPvr_BoundaryTestNode

函数名:public static BoundaryTestResult UPvr_BoundaryTestNode(BoundaryTrackingNode node, BoundaryType boundaryType)

功能:返回追踪节点对指定边界类型的测试结果

参数:node:追踪节点,boundaryType:边界类型

返回值:BoundaryTestResult

测试结果结构体

public struct BoundaryTestResult
       {
           public bool IsTriggering;                   // 是否触发边界
           public float ClosestDistance;               // 追踪节点与边界的最近距离
           public Vector3 ClosestPoint;                // 追踪节点与边界的最近点位置
           public Vector3 ClosestPointNormal;  // 最近点法线
        }

调用方式: Pvr_UnitySDKAPI.BoundarySystem.UPvr_BoundaryTestPoint(point, boundaryType);

UPvr_BoundaryTestPoint

函数名:public static BoundaryTestResult UPvr_BoundaryTestPoint(Vector3 point, BoundaryType boundaryType)

功能:返回任意3D点坐标对指定的边界类型的测试结果

参数:point:点坐标,boundaryType:边界类型

返回值:BoundaryTestResult

测试结果结构体

public struct BoundaryTestResult
      {
          public bool IsTriggering;                   // 是否触发边界
          public float ClosestDistance;               // 追踪节点与边界的最近距离
          public Vector3 ClosestPoint;                // 追踪节点与边界的最近点位置
          public Vector3 ClosestPointNormal;  // 最近点法线
       }

调用方式: Pvr_UnitySDKAPI.BoundarySystem.UPvr_BoundaryTestPoint(point, boundaryType);

UPvr_BoundaryGetGeometry

函数名:public static Vector3[] UPvr_BoundaryGetGeometry(BoundaryType boundaryType)

功能:返回安全区边界的点集合

参数:boundaryType:安全区边界类型

返回值:Vector3[]:安全区边界点集合

调用方式: Pvr_UnitySDKAPI. BoundarySystem.UPvr_BoundaryGetGeometry(boundaryType);