Unity快速搭建安卓VR项目

这里将介绍如何使用谷歌VR SDK,在Unity3d中快速搭建项目,并且可以将项目buildapk,在安卓手机上运行。

Cardboard

Cardboard就是上图中的纸盒子,类似VR头盔的造型。玩家戴上它,手机屏幕充当VR的显示设备,可以获得接近 true-VR 的体验。但这玩意儿感觉完全可以自己做一个。

Google VR SDK的配置

谷歌官方教程
这是谷歌自己的配置教程,按照里面的步骤慢慢来就可以,下面是精简版。

准备工作

我们需要准备版本不低于2018.4的Unity,以及GVR SDK for Unity包,下载地址:下载VR SDK

给Unity配置安卓SDK/NDK:配置Unity安卓环境

导入SDK并设置

新建一个3D项目,将下载好的 .unitypackage导入进项目。
将项目切换为安卓平台,并进入 Player Settings

按照上表进行设置。

进入demo

Google VR包里准备了几个demo,点击进去后运行,按住 Alt键+移动鼠标模拟头部转动,按住 Ctrl键+移动鼠标模拟头部左右倾斜。

搭建自己的场景

接下来我们需要准备Google VR自带的预制体:

与一个摄像机脚本 GvrPointerPhysicsRaycaster 。
这些都可以在Google VR中找到。

  • 将GvrPointerPhysicsRaycaster脚本挂到摄像机上;
  • 将GvrReticlePotiner挂到摄像机子物体上;
  • GvrControllerPointer要与摄像机处于同一级上,因此我们创建一个空物体,将其与摄像机挂在下面;
  • 剩下的三个GvrControllerMain、GvrEditorEmulator与GvrEventSystem随便放在场景里;
  • 将摄像机的 Clipping Planes 改为 0.03 。

随后进入游戏,就能按照上一步的操作模拟用户头部的动作了。

打包发布

在Unity里是看不到VR的“望远镜”视角的,但打包成APK安装到手机上后就能看到了。(只有一个手机没办法演示就不放图了ORZ)
如果安装后进入游戏黑屏,并且几秒后闪退的,在 Player Settings —— Other Settings 里,将 Graphics APIs里的 Vulkan 去掉,这个API需要安卓7以上的支持,而我们选的SDK可能没有那么高。

添加凝视事件

由于我们只有一台手机,没有手柄和其他控制器,因此想要在场景里移动和交互就有点难办。
对于人物移动,如果是做个演示Demo,可以写个脚本自动行走。
那么跟其他物体交互呢,可以采取“凝视”事件。Game视角里,屏幕中央有个准星,当准星对准某个物体时,称凝视这这个物体。我们可以用这个交互方式实现一些简单的如“移动到凝视物体位置”的功能。
Google VR已经为我们做了实现该事件的基本工作,我们只需要编写一个脚本和利用 Event Trigger组件即可。

  • 创建一个 Cube 作为被凝视的物体,在它身上添加一个 Cube 脚本,并编写如下方法。
  • 在 Cube 上添加 Event Trigger 组件,添加 Pointer Enter 和 Potiner Exit事件:

将 Cube 游戏物体拖拽给这两个事件,让它们识别到 Cube 脚本,然后选择 Cube 脚本中刚刚写好的 SetGazedAt 方法,将 Enter 事件打上勾。
注:这个打勾的意思是,当指针指到(这里为凝视) Cube 时,方法参数里的 gazedAt 会为 true,没有打勾的话会为 false。
经过上面的操作,我们就将“摄像机是否凝视了物体”的判断传递给了 isGazed ,之后我们可以通过 isGazed 添加一些自己的想法。

上一篇
下一篇