5 硬件产品开发指南

本章将介绍SDK在Pico各硬件产品上的使用方法,开发者根据需要选择看相应的内容即可。

5.1 Pico硬件通用说明

5.1.1 实现头部跟踪与立体渲染

实现头部跟踪与前文SDK快速入门一致,只需要将Pvr_UnitySDK预制体放入场景即可。

_images/5.1.png

图5.1 切换跟踪选项

Pvr_UnitySDK提供的功能说明:

  • Use Default Render Texture:是否使用默认的Render Texture尺寸,详见8.4说明。

  • Tracking Origin:设置当前的跟踪类型,详见8.11说明。

  • Display Refresh Rates:设置当前的屏幕刷新率

    1.    Default:系统默认

    2.    RefreshRate72:刷新率上限72hz

    3.    RefreshRate90:刷新率上限90hz

  • Reset Tracker Onload:进入场景时是否校准位置姿态。

  • Only Rotation Tracking:

    1.    Only HMD Rotation Tracking,不勾选表示头跟踪为6自由度,有姿态和位置,勾选表示头部跟踪为3自由度跟踪,只有姿态,没有位置。

    2.    Only Controller Rotation Tracking,不勾选表示手部的跟踪为6自由度,有姿态和位置,勾选表示手部的跟踪为3自由度,只有姿态,没有位置。

  • Show Fps:是否显示当前帧率。

  • Use Default Fps:是否使用默认帧率。

  • Use Monoscopic:开启单目模式。

  • Use Singlepass:开启Singlepass。

  • Use Content Protect:内容保护,如果勾选,则禁止截屏,录屏,投屏功能。

5.1.2 手柄使用说明

1.展开Assets> PicoMobileSDK> Pvr_Controller> Prefabs,将ControllerManager预制体放到场景中,作为Pvr_UnitySDK子GameObject与Head同级:

此处需要注意ControllerManager的position设置为(0,0,0)。

_images/5.2.png

图5.2 ControllerManager预制体拖放位置

手柄按键的使用需要采用调用接口API的形式,具体API请参照第7章手柄相关接口。

备注:如果使用SDK2.8.0 之前版本适配过应用,此处需要注意要删除场景里原本的PvrController0和PvrController1预制体,只使用ControllerManager即可。

2.使用自定义手柄模型

如果您使用了自定义的手柄模型(比如手枪、弹弓、魔杖、剑等道具),请勾选此选项。

_images/5.2.1.png

图5.3 自定义手柄模型选项

3.模型角度调整

Pico Neo3手柄硬件结构与Pico Neo2不同,Pico Neo3手柄握持与水平方向有一个34度的夹角,如下图。

_images/5.2.2.png

图5.4 Pico手柄角度示意图

新版本SDK为了支持Pico Neo3应用在Pico Neo2上的兼容,对手柄模型增加了角度的调整,以保证Neo3上开发的应用可以在Neo2上正常使用;如果您需要使用新SDK在Neo2上开发应用,则需要对模型角度作调整,您需要将PvrController0和PvrController1下的controller预制体的X轴向上抬高34度;

5.2 Pico G2/G2 4K 输入说明

使用单手柄的按键与触摸板,需要调用手柄相关的接口,具体接口请参照第七章API接口函数一览中的7.3手柄相关。这里介绍以下接口的参数与物理手柄按键的对应关系。

G2/G2 4K手柄物理按键与API接口函数中参数的对应关系

G2控制器按键 输入绑定
_images/5.105.png Pvr_KeyCode.APP
_images/5.106.png Pvr_KeyCode.Home
_images/5.101.png Pvr_KeyCode.TOUCHPAD
_images/5.102.png Pvr_KeyCode.TRIGGER
_images/5.103.png Pvr_KeyCode.VOLUMEUP
_images/5.104.png Pvr_KeyCode.VOLUMEDOWN

触摸板的示意图如下:

_images/5.6.png

图5.5 触摸板示意图

备注:上图为sdk2.8.6版本之后新的触摸板示意图,2.8.6及之前为旧版,x,y方向和区间范围不同。

5.3 Pico Neo2 输入说明

使用双手柄的按键与摇杆,需要在调用接口API,详见7.3小节。这里仅介绍接口API的参数与物理手柄按键的对应关系:

Pico Neo 2:

按键 输入事件
_images/5.107.png Pvr_KeyCode.HOME
_images/5.108.png Pvr_KeyCode.APP
_images/5.109.png Pvr_KeyCode.TRIGGER
_images/5.1010.png
Pvr_KeyCode.Right (手柄1为Right) Pvr_KeyCode.Left (手柄0为left)
_images/5.1011.png Pvr_KeyCode.X(手柄0)
_images/5.1012.png Pvr_KeyCode.Y(手柄0)
_images/5.1013.png Pvr_KeyCode.A(手柄1)
_images/5.1014.png Pvr_KeyCode.B(手柄1)
_images/5.1015.png Pvr_KeyCode.TOUCHPAD

5.4 Pico Neo3 输入说明

使用双手柄的按键与摇杆,需要在调用接口API,详见7.3小节。这里仅介绍接口API的参数与物理手柄按键的对应关系:

Pico Neo 3:

_images/5.1026.png

图5.6 按键映射图(正视图)

_images/5.1027.png

图5.7 按键映射图(侧视图)

按键 输入事件
Home Pvr_KeyCode.HOME
Menu Pvr_KeyCode.APP
Trigger Pvr_KeyCode.TRIGGER
Grip Pvr_KeyCode.Right (手柄1为Right) Pvr_KeyCode.Left (手柄0为left)
Joystick Pvr_KeyCode.TOUCHPAD
X Pvr_KeyCode.X(手柄0)
Y Pvr_KeyCode.Y(手柄0)
A Pvr_KeyCode.A(手柄1)
B Pvr_KeyCode.B(手柄1)

5.5 Pico一体机按键

下表是指一体机头显上的按键与Unity里的键值对应关系。

HMD按键 Unity输入键
返回键 KeyCode.Escape
确认键 KeyCode.JoystickButton0
Home键 KeyCode.Home(系统占用,默认不开放)
音量加键 Android标准VOLUME_UP(系统占用,默认不开放)
音量减键 Android标准VOLUME_DOWN(系统占用,默认不开放)

备注:KeyCode.JoystickButton0在新的Input系统获取会报错且无法识别确认键。如果仍旧想使用旧的Input系统来获取确认键,则需要在Player Settings-> Player-> Other Settings->Active Input Handling*中勾选Both或者切回Input Manager(Old)。

_images/5.21.png

图5.8 新旧输入系统切换