上一篇文章简单的介绍了下VR以及在安卓开发中简单的使用VR,但局限性也很明显就是只能看一些简单的全景图和VR视频,想要做到更为复杂的沉浸在我们自建3d场景中以及交互功能只能借助Unity3D了。因此又开始了学习Unity3D之路,因为不像安卓,iOS那样资料多且系统,学起来也是着实费力。这篇文章就是记录下简单的Unity3D环境搭建及借助一些免费的Unity资源并进行简单的交互。
效果图
vr_scene.gif实现这个效果我们的方法和上一篇文章一样分别借助Google VR sdk和暴风VR SDK来完成。
1.Google VR sdk简单使用
- 向Unity项目中导入Google VR Unity SDK。Google VR Unity SDK下载
- 在Unity Asset Store中找到一个合适的免费资源包,当然我们也可以自建场景。
- 调用Google VR相机组件,实现双眼分屏的VR模式。
- 通过Xcode将VR app部署到iPhone当中。
- 在VR眼镜中欣赏。
实现过程
- 下载完 Google VR sdk直接导入我们的Unity中可以看到我们项目里面多了'GoogleVR'和'Plugins'两个文件夹,这里就是我们要用的谷歌VR环境可以使我们的场景变成双屏模式以及打包成安卓和iOS包使用。
- Google VR Unity SDK布置完毕,下面我们来找一些现成的环境素材。点击 Asset Store 面板(没有的话可以通过Window>Asset Store 找到),在内嵌页面的右侧导航当中找到 3D Models > Enviroments ,筛选并找到自己喜欢的免费模型,确认资源中包含.unity场景文件,例如下图当中我所选用的Handpainted Forest Environment Free Sample资源包所提供的Scene
- 打开我们下载的scene
- 想要置身于3D环境当中以第一人称视角观察世界,我们需要“眼睛”,即Unity提供的Camera控件。下载的场景中已经包含了Camera控件,在 Project 面板的资源列表中找到 Assets > GoogleVR > Prefabs 文件夹,将其中的 GvrViewerMain 拖放到项目中(这一步骤相当于为Unity项目添加Google VR模式,包括视觉样式及互动机制等等,也是最重要的一步)。
- 点击顶部的 Play 按钮,界面会自动切换到Game模式。因为我们下载的场景包含移动跳跃脚本因此我们可以在场景中移动、另外Camera下的GvrReticle是我们的准星组件,此时可以按住键盘上的 alt 或 control 键,同时移动鼠标,测试一下主视角。
2.利用暴风sdk实现这个效果(了解了谷歌sdk在开发中的作用那么暴风sdk的使用也就不难理解了)
- 第一步同样向Unity项目中导入MojingSDK。MojingSDK下载
sdk中提供了许多demo我们可以打开体验体验。
- 将MojingMain代替我们场景中的Main Camera
- 运行效果同Google VR sdk。
- 如果打包成安卓apk在手机上运行的话我们还可以加上手柄控制移动代码,这里因为我打包的是iOS安装包,而暴风魔镜不支持苹果的蓝牙手柄,所以也就没试,不过贴上手柄控制的关键代码。
using UnityEngine;
using System.Collections;
using MojingSample.CrossPlatformInput;//引入暴风魔镜跨平台输入类库
public class MojingInput : MonoBehaviour {
// Update is called once per frame
void Update () {
if (CrossPlatformInputManager.GetButtonDown ("LEFT")) {
//十字键左键按下
}
if (CrossPlatformInputManager.GetButtonDown ("RIGHT")) {
//十字键右键按下
}
if (CrossPlatformInputManager.GetButtonDown ("UP")) {
//十字键上键按下
}
if (CrossPlatformInputManager.GetButtonDown ("DOWN")) {
//十字键下键按下
}
if (CrossPlatformInputManager.GetButtonUp ("OK")) {
//手柄OK键抬起
}
if (CrossPlatformInputManager.GetButtonUp ("C")) {
//手柄返回键抬起
}
if (CrossPlatformInputManager.GetButtonUp ("MENU")) {
//手柄菜单键抬起
}
if (CrossPlatformInputManager.GetButtonUp ("CENTER")) {
//十字键中心抬起
}
//获取手柄摇杆水平摆动值
float x = CrossPlatformInputManager.GetAxis("Vertical");
//获取手柄摇杆竖直摆动值
float y = CrossPlatformInputManager.GetAxis("Horizontal");
}
}
3.打包运行在真机上
- 点击菜单栏中的 File > Build Settings :
- 在 Build Settings 窗口中,选择 Platforms 列表里的“ iOS ”,然后点击列表下方的 Switch Platform 按钮:
- 等待素材导入完成,然后点击 Build Settings 窗口中的 Player Settings 按钮,此时右侧的 Inspector 面板当中会出现 PlayerSettings 选项区,点击“ Other Settings ”使其展开,并找到“ Bundle Identifier ”字段,在这里为你的app输入一个合法的安装包名称,只要遵循“com.<公司或组织名称>.<app名称>”的形式即可:
- 接下来要构建用于部署到iOS设备当中的Xcode项目。在之前的 Build Settings 窗口中点击 Build 按钮,选择恰当的保存位置及Xcode项目路径名称,点击 Save 按钮:
- 在Finder中找到刚刚构建好的Xcode项目文件夹,打开其中的.xcodeproj文件。用USB线连接好你的iPhone,在Xcode顶部的选项栏中选择自己的iPhone设备,点击Run按钮,等待项目运行到真机上就可以戴着眼镜欣赏了(虽然看一会有点晕但还是不错的😝)。
网友评论