5 硬件产品开发指南¶
本章将介绍SDK在Pico各硬件产品上的使用方法,开发者根据需要选择看相应的内容即可。
5.1 Pico硬件通用说明¶
5.1.1 实现头部跟踪与立体渲染¶
实现头部跟踪与前文SDK快速入门一致,只需要将Pvr_UnitySDK预制体放入场景即可。
图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)。
图5.2 ControllerManager预制体拖放位置
手柄按键的使用需要采用调用接口API的形式,具体API请参照第7章手柄相关接口。
备注:如果使用SDK2.8.0 之前版本适配过应用,此处需要注意要删除场景里原本的PvrController0和PvrController1预制体,只使用ControllerManager即可。
2.使用自定义手柄模型
如果您使用了自定义的手柄模型(比如手枪、弹弓、魔杖、剑等道具),请勾选此选项。
图5.3 自定义手柄模型选项
3.模型角度调整
Pico Neo3手柄硬件结构与Pico Neo2不同,Pico Neo3手柄握持与水平方向有一个34度的夹角,如下图。
图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控制器按键 | 输入绑定 |
---|---|
Pvr_KeyCode.APP | |
Pvr_KeyCode.Home | |
Pvr_KeyCode.TOUCHPAD | |
Pvr_KeyCode.TRIGGER | |
Pvr_KeyCode.VOLUMEUP | |
Pvr_KeyCode.VOLUMEDOWN |
触摸板的示意图如下:
图5.5 触摸板示意图
备注:上图为sdk2.8.6版本之后新的触摸板示意图,2.8.6及之前为旧版,x,y方向和区间范围不同。
5.3 Pico Neo2 输入说明¶
使用双手柄的按键与摇杆,需要在调用接口API,详见7.3小节。这里仅介绍接口API的参数与物理手柄按键的对应关系:
Pico Neo 2:
按键 | 输入事件 |
---|---|
Pvr_KeyCode.HOME | |
Pvr_KeyCode.APP | |
Pvr_KeyCode.TRIGGER | |
|
|
Pvr_KeyCode.X(手柄0) | |
Pvr_KeyCode.Y(手柄0) | |
Pvr_KeyCode.A(手柄1) | |
Pvr_KeyCode.B(手柄1) | |
Pvr_KeyCode.TOUCHPAD |
5.4 Pico Neo3 输入说明¶
使用双手柄的按键与摇杆,需要在调用接口API,详见7.3小节。这里仅介绍接口API的参数与物理手柄按键的对应关系:
Pico Neo 3:
图5.6 按键映射图(正视图)
图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)。
图5.8 新旧输入系统切换