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包使用。
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
找场景.png
下载导入场景.png
  • 打开我们下载的scene
打开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我们可以打开体验体验。
mojingsdk.png
  • 将MojingMain代替我们场景中的Main Camera
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.<公司或组织名称>.<app名称>”的形式即可:
  • 接下来要构建用于部署到iOS设备当中的Xcode项目。在之前的 Build Settings 窗口中点击 Build 按钮,选择恰当的保存位置及Xcode项目路径名称,点击 Save 按钮:
  • 在Finder中找到刚刚构建好的Xcode项目文件夹,打开其中的.xcodeproj文件。用USB线连接好你的iPhone,在Xcode顶部的选项栏中选择自己的iPhone设备,点击Run按钮,等待项目运行到真机上就可以戴着眼镜欣赏了(虽然看一会有点晕但还是不错的😝)。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,874评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,102评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,676评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,911评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,937评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,935评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,860评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,660评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,113评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,363评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,506评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,238评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,861评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,486评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,674评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,513评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,426评论 2 352

推荐阅读更多精彩内容