第六章 各硬件产品开发指南

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

6.1 Pico Goblin & Pico U & Pico Goblin2

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

实现头部跟踪与前文SDK快速入门一致,只需要将Pvr_UnitySDK预制体放入场景即可。但是有一点需要注意,放入场景后,展开场景中的Pvr_UnitySDK物体,切换到其细节面板:

_images/6.1.png

图6.1 切换跟踪选项

需要确保Pvr_Unity SDK Manager组件的如下属性:Head Pose:Three Dof;Hand Pose:Three Dof。

6.1.2 使用单手柄预制体 (Pico Viewer 不支持)

Pico 单手柄目前支持Pico Goblin、Pico U、Pico Goblin2三种设备,使用Pico 单手柄请遵循以下步骤:

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

_images/6.2.png

图6.2 PvrController0预制体拖放位置

2、展开Assets> Pvr_Controller> Prefabs,将ControllerManager预制体放到场景里,然后将PvrController0挂在ControllerManager上的Pvr_Controller脚本中,将Goblin_Controller下的toast挂在Pvr_ControllerManager脚本中:

_images/6.3.png

图6.3 设置ControllerManager

6.1.3 使用单手柄的按键、触摸板

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

首先是按键,按键与API中接口函数的对应关系如下:

Goblin手柄物理按键与API接口函数中参数的对应关系

_images/6.4.png

图6.4 Goblin手柄物理按键与API对应关系

Goblin2 手柄物理按键与API接口函数中参数的对应关系

_images/6.5.png

图6.5 Goblin2手柄物理按键与API对应关系

然后是触摸板,触摸板的示意图如下:

触摸板的示意图

_images/6.6.png

图6.6 触摸板示意图

6.2 Pico Neo

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

实现头部跟踪与前文SDK快速入门一致,只需要将Pvr_UnitySDK预制体放入场景即可。需要注意的是,Pico Neo支持多种跟踪方式。展开场景中的Pvr_UnitySDK物体,切换到其细节面板:

_images/6.7.png

图6.7 为Pvr_SDKManager选项面板

6Dof Position Reset:当Head Pose为Six Dof时,只有勾选“Enable 6Dof Position Reset”才可以重置位置,否则长按Home键将只重置手柄姿态。

  • Show SafePanel:当勾选Show SafePanel时,启动游戏会有安全提示面板。
  • Head Pose:

1、Three Dof,表示头部跟踪为3自由度跟踪,只有姿态,没有位置;

2、Six Dof,表示头部的跟踪为6自由度,有姿态,也有位置。

  • Hand Pose:

1、Three Dof,表示手部跟踪为3自由度,有姿态,而位置是根据头部姿态及手柄的传感器数据计算而来,跟踪范围有限。

2、Six Dof,手部的跟踪为6自由度,姿态和位置都会跟踪。

  • Use Default Range:即安全区域的半径,默认为0.8米。超出安全范围后会有区域提示和视野变黑效果。
  • Moving Ratios:移动比例,即现实中移动距离和场景里移动的比例,默认是1比1。
  • 假如想自定义安全区域半径,首先需要把Pvr_UnitySDKManager.cs文件内的private bool defaultRange=true修改为false,然后不勾选Use Default Range,则会出现下图选项。可以自由填写设置安全区域的范围。
_images/6.8.png

图6.8 为自由定义安全区域设置

6.2.2 使用双手柄预制体

使用双手柄,需要遵循如下步骤:

1、将PvrController0和PvrController1预制体放到Pvr_UnitySDK下,与Head同级。如下图所示:

_images/6.9.png

图6.9 6dof手柄预制体层级关系

2、将ControllerManager预制体放到场景里,然后将PvrController0, PvrController1挂在ControllerManager上的Pvr_Controller中,如下图所示:

_images/6.10.png

图6.10 ControllerManager细节面板

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

6.2.3 使用双手柄的按键、触摸板

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

_images/6.11.png

图6.11 Neo手柄物理按键与API对应关系

此外,触摸板与3dof一致,这里不再赘述。

6.3 Pico Viewer

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

实现头部跟踪与前文SDK快速入门一致,只需要将Pvr_UnitySDK预制体放入场景即可。需要注意的是,Pico Viewer 红框内功能不支持:

_images/6.12.png

图6.12 为Pico Viewer切换跟踪选项

6.3.2 Viewer相关说明

1. 2D Loading

SDK中设置默认应用启动loading功能,请知悉

2. AndroidManifest相关说明

在AndroidManifest中列有SDK所需权限,activity,service,value等请审慎修改

3. Unity版本相关问题

已知 unity2017.2.0f3版本在打包时候 build and run 功能无法使用。

6.4 Pico 一体机按键

HMD按键 Unity输入键
返回键 KeyCode.Escape
确认键 KeyCode.JoystickButton0
Home键 KeyCode.Home(系统占用)