Gvr SDK概述

通过谷歌VR SDK for unity 为Android和iOS 构建虚拟现实应用程序

unity SDK在Android上支持构建应用程序for daydream 和 cardboard。对于iOS你只能为cardboard构建应用程序。

google VR SDK要求unity5.2.1或更高版本。

本文更新于:2016-06-20

Gvr 核心功能

  • 头部追踪
  • 并排立体呈现(模拟人的左右眼)
  • 空间音频rendering
  • 检测用户与系统的交互(通过触发或控制器)
  • 自动化配置 vr 设备参数,或提供特殊配置
  • 立体图像失真校正
  • 当你的手机插入到VR 设备时,准星自动聚焦在帮助中心
  • 自动陀螺漂移校正

英文原版:https://developers.google.com/vr/unity/#features

Gvr 附加功能

  • 在Unity编辑器中模拟头部运动,按Alt或Ctrl 进行运动
  • 对不同的VR设备,提供相似的视野(Control the approximate field of view regardless of differences in VR viewer configurations)
  • 遵守相机变焦效果VR-safe的方式,即兼容头跟踪
  • 恰当地支持画中画窗口,所以在调整屏幕的位置,失真校正后仍可见
  • 动态调整 stereo level(立体水平) 以减少眼疲劳
  • 很容易地确定用户注视的方向,例如,射线检测
  • 与Canvas UI 元素交互,可以通过目光和触发器
  • 使用同一个代码函数,处理触发和界面点击检测
  • 支持Image Effects(图像效果)和 Deferred Rendering(延迟渲染),或绕过这以增加支持FPS。

英文原版:https://developers.google.com/vr/unity/#features

准备工作

GVR SDK for Unity 下载:  https://github.com/googlevr/gvr-unity-sdk

GVR 在线文档https://developers.google.com/vr/unity/#features

Google APIs for Unity: https://developers.google.com/unity/

本文环境:Unity 5.3.1 x64 + gvr 0.8

搭建环境

1、如果你只需要SDK文件(GoogleVRForUnity.unitypackage) 可以参考:Github 下载单个文件  。当然你也可以clone整个项目

2、创建新工程,导入gvr package

Demo分析

sdk中有两个Demo,在GoogleVR\DemoScenes\HeadsetDemo ,GoogleVR\DemoScenes\ControllerDemo

HeadDemo

这个demo是gvr模拟的头部运动的Demo,操作方法:在PC上 按住Alt+移动鼠标 模拟头部转动,按住 Ctrl+移动鼠标 模拟头部倾斜

上述两种运动都是 GvrMain\Head 的transform属性在发生改变

当准星选中某个GameObject时,会有一个准星放大缩小的动画,实现代码请看 HeadDemo\Teleport.cs

ControllerDemo

此demo大概是通过连接手机来控制,实现代码请看ControllerDemo\ControllerDemoManager.cs

答疑

条件:我是直接使用GvrMain.prefab,文中的Main Camera是指:GrvMain\Head\Main Camera

场景中没有准星?

答:把GoogleVr\Prefabs\UI\GvrReticle.prefab 拖动到 GrvMain\Head\Main Camera

场景中的GameObject不能被选中?

答:1. 给Main Camera添加 Physics Raycaster

2. 在Physics RaycasterEvent Mask 选择要接收事件的 Layer

如何让某个GameObject可以被选中?

答:1. 给该GameObject添加 Collider (可以是BoxCollider,SpereCollider等等)

2. 再给该GameObject添加 Event Trigger (事件触发器)

3. 给该GameObject 绑定事件处理脚本,该脚本中包含以下函数 Enter ,Trigger ,Exit ,具体请实现

如何让UI元素显示在3D场景中?

答:1. 以UGUI为例,创建一个简单的UI

2. 修改Cavas 的Render ModeWord Space,这样它就可以渲染在世界空间中,而不是渲染在最顶层的屏幕上

3. 调整UI的位置到 Main Camera 视野内

如何接收场景中UI按钮的点击事件?

答:1. 创建好UI之后,在Hierarchy视图中找到 EventSystem

2. 给 EventSystem 添加 GazeInputModule

3. 把EventSystem 上的 Standalone Input Module 禁用或 把顺序调整到 GazeInputModule下,或者 Remove它

4. 给UI按钮 绑定事件处理脚本,该脚本中包含以下函数 Enter ,Trigger ,Exit ,具体请实现

如何取消左右两屏显示成普通的显示

答: 在GrvMainGvrViewer 组件中,不勾选 VR Mode Enable

参考资料

How to Make a VR Game With Unity and Google Cardboard

英文原版:https://www.raywenderlich.com/116805/make-vr-game-unity-google-cardboard

中文翻译:http://www.tairan.com/archives/10636/

Gvr SDK for Unity 分析(一)的更多相关文章

  1. Gvr SDK for Unity 分析(二)

    前言 关于google vr sdk的具体使用,传送门 Gvr SDK for Unity 分析(一) Google Daydream平台已经整合进Google VR SDK 本文环境:Unity5. ...

  2. Channel SDK (渠道SDK) for Unity

    渠道 英文channel,解释:商品的销售路线,也就是我们开发商(CP)都把游戏开发好了,交付给渠道帮我们运营,帮我们推广,帮我们赚钱. Android和IOS渠道 拿安卓和IOS两大平台来说,它们都 ...

  3. 社交化分享SDK for Unity

    前言 社交化分享,即分享到社交网络. 本文主要记录的是在Unity集成社交化分享SDK,现主流的分享SDK有如下: 1.友盟社交化分享 for unity 2.ShareSDK分享 for unity ...

  4. EasyAR SDK在unity中的简单配置及构建一个简单场景。

    首先打开EasyAR的官方网站http://www.easyar.cn/index.html,注册登陆之后,打开首页的开发页面. 下载sdk和Unity Samples. 创建一个unity3d工程N ...

  5. cardboard sdk for unity 系统分析 - 属性行为分析CardBoard类

    一.CardBoard类是个单例类,全局只有一个CardBoard对像且在需要时才生成: CardBoard中主要使用了BaseVRDevice device这个对像,而这个对像也是单例类BaseVR ...

  6. Android Studio 内置SDK在 unity中使用

    1 AndroidStudio 安装好后更新SDK Platforms 2 在 File -> Other Settings -> Default Project Structure 中可 ...

  7. unity3d如何快速接入渠道SDK之Unity篇

    原文链接: http://bbs.tianya.cn/post-414-53320-1.shtml 首先我们讲一下,为什么要介绍这个插件? 是因为这个插件极大的简化了我对接渠道SDK的工作量,精力和时 ...

  8. 集成讯飞听写iOS sdk到unity遇到的问题:weak成员和strong成员

    在unity里集成讯飞语音听写iOS sdk的过程中,遇到一个问题,官方的demo中可以将多次onResults回调返回的结果累积拼接起来组成一个完整的结果,而我集成过来以后就不能累积了,只拿到最后一 ...

  9. PIE SDK主/次要分析

    1.算法功能简介 主要分析功能是采用类似卷积滤波的方法将较大类别中的虚假像元归到该类中,首先定义一个变换核尺寸,然后用变换核中占主要地位(像元最多)类别数代替中心像元的类别数,次要分析相反,用变换核中 ...

随机推荐

  1. 也来谈谈wap端瀑布流布局

    Definition 瀑布流布局,在视觉上表现为参差不齐的多栏布局,随着页面滚动条向下滚动,新数据不断被加载进来. 瀑布流对于图片的展现,是高效而具有吸引力的,用户一眼扫过的快速阅读模式可以在短时间内 ...

  2. 一步一步教你如何解锁被盗的iPhone 6S

    即使你的iPhone6S设置了六位数的密码,甚至还设置了touch ID,但我要告诉你的是:你的手机仍然能被犯罪分子解锁. 事件背景 三天前,一位苹果用户的iPhone6S被偷了.随后,小偷重置了该用 ...

  3. 操作系统开发系列—12.d.扩充内核 ●

    现在把esp.GDT等内容放进内核中,我们现在可以用C语言了,只要能用C,我们就避免用汇编. 下面看切换堆栈和GDT的关键代码: ; 导入函数 extern cstart ; 导入全局变量 exter ...

  4. 【Android】魅族Flyme OS 3摄像头无法预览的问题

    错误代码: 12-12 14:28:34.692: E/AndroidRuntime(1524): java.lang.RuntimeException: startPreview failed 12 ...

  5. Java 引用

    Java 对象的引用方式有如下四种,这四种方式主要是为了给垃圾回收提供更灵活的操作: 1.强引用,最常见的引用方式,当一个对象被一个或一个以上的引用变量引用时,它处于可达状态,这时不会被垃圾回收器回收 ...

  6. 回到过去美好的时光——源代码版本管理Always Use source code Control

    Don't Repeat Yourself Don't Repeat Yourself,这是程序员修炼之道中的经典名言.源代码版本管理对程序员来说是非常重要的工作.因为它让你能够回到过去,而不用做重复 ...

  7. #VSTS日志# 15/11/18 插件应用市场,RM,包管理器等

    [小编]从今天开始,我将在这个博客上连载Visual Studio Team Service的定期更新.VSTS是Team Foundation Server 的在线版本,微软每3周会对这个服务进行更 ...

  8. WPF学习之路(十二)控件(Content控件)

    Label Label相比TextBlock功能并不强大,但是支持键盘快捷键的方式获得焦点 <StackPanel> <Label Target="{Binding Ele ...

  9. css hover对其包含的元素进行样式设置

    <ul class="icon-down-single-arr-li"> <li> <a href="javascript:void(0)& ...

  10. H5一二事

    先回顾一下WEB技术的几个阶段 Web 1.0 内容为主,主要流行HTML和CSS Web 2.0 动态网页,流行AJAX/JavaScript/DOM H5 时代,WEB开发回归富客户端 那么H5肯 ...