VR移动开发(二)-Unity3D for VR

上一篇文章简单的介绍了下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包使用。
VR移动开发(二)-Unity3D for VR_第1张图片
C4C627F2-942E-424A-9E38-5A36932DF9F7.png
  • Google VR Unity SDK布置完毕,下面我们来找一些现成的环境素材。点击 Asset Store 面板(没有的话可以通过Window>Asset Store 找到),在内嵌页面的右侧导航当中找到 3D Models > Enviroments ,筛选并找到自己喜欢的免费模型,确认资源中包含.unity场景文件,例如下图当中我所选用的Handpainted Forest Environment Free Sample资源包所提供的Scene
VR移动开发(二)-Unity3D for VR_第2张图片
找场景.png
VR移动开发(二)-Unity3D for VR_第3张图片
下载导入场景.png
  • 打开我们下载的scene
VR移动开发(二)-Unity3D for VR_第4张图片
打开demo scene.png
  • 想要置身于3D环境当中以第一人称视角观察世界,我们需要“眼睛”,即Unity提供的Camera控件。下载的场景中已经包含了Camera控件,在 Project 面板的资源列表中找到 Assets > GoogleVR > Prefabs 文件夹,将其中的 GvrViewerMain 拖放到项目中(这一步骤相当于为Unity项目添加Google VR模式,包括视觉样式及互动机制等等,也是最重要的一步)。
VR_camera.png
  • 点击顶部的 Play 按钮,界面会自动切换到Game模式。因为我们下载的场景包含移动跳跃脚本因此我们可以在场景中移动、另外Camera下的GvrReticle是我们的准星组件,此时可以按住键盘上的 alt 或 control 键,同时移动鼠标,测试一下主视角。
效果.png

2.利用暴风sdk实现这个效果(了解了谷歌sdk在开发中的作用那么暴风sdk的使用也就不难理解了)

  • 第一步同样向Unity项目中导入MojingSDK。MojingSDK下载
    sdk中提供了许多demo我们可以打开体验体验。
VR移动开发(二)-Unity3D for VR_第5张图片
mojingsdk.png
  • 将MojingMain代替我们场景中的Main Camera
VR移动开发(二)-Unity3D for VR_第6张图片
replace.png
  • 运行效果同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.<公司或组织名称>.”的形式即可:
  • 接下来要构建用于部署到iOS设备当中的Xcode项目。在之前的 Build Settings 窗口中点击 Build 按钮,选择恰当的保存位置及Xcode项目路径名称,点击 Save 按钮:
  • 在Finder中找到刚刚构建好的Xcode项目文件夹,打开其中的.xcodeproj文件。用USB线连接好你的iPhone,在Xcode顶部的选项栏中选择自己的iPhone设备,点击Run按钮,等待项目运行到真机上就可以戴着眼镜欣赏了(虽然看一会有点晕但还是不错的)。

你可能感兴趣的:(VR移动开发(二)-Unity3D for VR)