平台差异
一般而言,CPU和GPU运算能力在PC上是相当程度地优于mobile。
在VIVE上的Arcade Saga上,我们保持了90 FPS,Drawcall大约是250,而三角形数量大约是140K。
在手机上,我们尝试去最佳化以保持60 FPS,Drawcall大约是50,而三角形数量大约是20K。
使用者行为差异
控制器的自由度(Degrees of Freedom,DoF)以及控制器功能是两个主要的使用者行为与体验的要素。
自由度
VIVE是6个自由度的机器,在头部装置以及控制器上都可以获得位置和旋转的资讯。Wave VR可以支持3和6个自由度的追踪装置。举个例子,HTC Link是6个自由度的头部装置并且有两只6个自由度的控制器。除此之外,Wave VR可以用来结合3个自由度以及6个自由度。因此,在你开始移植之前,你必须要注意使用者体验的差异在VIVE以及Wave VR上。
控制器功能
按钮数量在VIVE和Wave VR上有可能有差异
在VIVE上你可以使用四个按钮:触碰(Touch),触发(Trigger), 紧握(Grip) 以及表单(Menu)。
在Wave VR上你可以使用三个按钮(基于 HTC Link):触碰(Touch),触发(Trigger)以及表单(Menu)。
所以我们必须要在移植之前完成按钮的对照。
StreamVR | Wave VR |
---|---|
SteamVR_Controller.ButtonMash.Touchpad | wvr.WVR_InputId.WVR_InputId_Alias1_Touchpad |
SteamVR_Controller.ButtonMash.ApplicationMenu | wvr.WVR_InputId.WVR_InputId_Alias1_Menu |
SteamVR_Controller.ButtonMash.Grip | wvr.WVR_InputId.WVR_InputId_Alias1_Grip |
SteamVR_Controller.ButtonMash.Trigger | wvr.WVR_InputId.WVR_InputId_Alias1_Trigger |
移植 VIVE 到 Wave VR
在开发者了解VIVE以及Wave VR的差异后,我们将会展示如何移植Unity开发的应用。
Unity专案设定
-
-
导入Wave VR SDK到你的专案。
在导入SDK后,你会发现SteamVR以及Wave VR会有冲突因为SDKs互相有重叠。因此,你必须要 删除所有的SteamVR设定以及代码 从你的专案以防万一Unity无法识别从OpenVR来的功能。
你必须用Wave VR置换它们。 这里是一些需要的操作:
StreamVR | Wave VR |
---|---|
StreamVR_Controller.Device | WaveVR_Controller.Device |
StreamVR_Controller.Device.GetPress | WaveVR_Controller.Device.GetPress |
SteamVR_TrackedObject | WaveVR_PoseTracker |
SteamVR_ControllerManager | WaveVR_ControllerManager |
-
-
在喜好设定中,下载Android SDK以及JDK,接着在喜好设定中指定它们。
-
-
在编译设定中,把平台从PC切换到Android。
-
-
从玩家设定中关掉”虚拟现实支持”。
相机
在相机设定之中,移除SteamVR的功能。从专案中移除 Main Camera (origin) 并重新挂载 WaveVR prefab 当作新的相机。
-
原始:
- 更新:
控制器
挂载两个预设的控制器prefabs。一个是 右手 ,一个是 左手