原地址

PART I UNITY VR

Unity内置对若干VR设备的支持,至于具体是哪些设备,不妨看看VRDeviceType这个枚举变量。

本教程主要针对Oculus系列的VR设备,特别是Oculus Rift Development Kit 2(DK2)和消费者版本的Samsung Gear VR(需要配合三星旗舰手机系列使用,如Galaxy S6, S6 Edge,S6 Edge+,Note 5)。对于配合第一代开拓者版本Gear VR的Note4,我们并不关心。因此虽然有些VR示例还是可以在这台设备上运行,但是效果肯定没那么好。哥,你就明说不要用note4和开拓者版本的gear vr好了。

当然,Unity也会在后续支持其它VR头戴设备,比如HTC VIVE。因此当那一天到来的时刻,这篇官方的教程也会随之更新的。老实说,Unity和Oculus真是一对好基友。

如果想了解VR头戴设备的更多信息,建议去阅读官方的手册。

PART II 在Unity项目中设置VR

首先请下载最新的Oculus runtime 0.8或更高版本(https://developer.oculus.com/downloads/ ),以及最新的Unity5.3或更高版本(http://unity3d.com/get-unity/download )。

在项目中启用对VR的支持废除简单,只需要在Unity菜单中选择Edit > Project Settings> Player > Other Settings > Rendering

然后在Inspector中勾选”Virtual Reality Supported“。

在runtime时,可以通过在代码中使用UnityEngine.VR.VRSettings.enabled属性来进行设置。

PART III 在Unity中预览VR场景

当我们在Unity Editor中已经启用VR Support,而且连接上了DK2设备时,进入Play 模式就可以在DK2上显示游戏的场景。这样可以大大提高开发测试和迭代的效率。和之前不同,开发者无需编译生成一个可执行的项目才能看到VR应用或游戏的调整。当然,老司机们会发现此前的双眼视图已经被单一视图替代了。

需要提醒大家的是,我们没必要为每只眼睛都创建一个camera,所有的camera都会在VR中进行渲染,除了那些分配了Render Texture(渲染纹理)的摄像机。关于Render Textures,请参考这里(http://docs.unity3d.com/Manual/class-RenderTexture.html )。Unity会自动对摄像机的渲染进行优化,比如culling(剔除)和阴影渲染,从而减少性能消耗。

关于VR的相关主题还可以在Unity Manual(http://docs.unity3d.com/Manual/VROverview.html )和Unity Scripting API(http://docs.unity3d.com/ScriptReference/30_search.html?q=VR ) 和中找到更多信息。

PART IV 使用Unity进行VR开发的软硬件推荐

因为VR是一个全新的媒介,所以在撰写本教程的时候存在着软硬件的限制,请参考以下内容。

1.硬件

为了让用户获得好的VR游戏体验,需要在头戴设备上实现所需的帧速。在DK2上的最小帧速是75fps,而在Gear VR上的最小帧速是60fps。如果帧速小于以上数值,那么用户会明显感觉到体验下降甚至导致晕眩。

除了保持游戏帧速在一定的数值之上,玩家电脑上的GPU还必须具备足够的能力,可以按所需的分辨率以HMD头戴设备面板的刷新率输出。以DK2为例,就是需要做到75hz和1920*1080。不过如果你想给Oculus Rift CV1开发应用,那么就必须实现90hz和2160*1200的分辨率,这将是个巨大的挑战。

如果你在使用DK2,那么需要确保硬件设备可以用所需的分辨率以所需的刷新率输出图像。很多笔记本电脑采用独立显卡和集成显卡切换的方式,但这些显卡基本上都无法满足以上要求,甚至连1920*1080和75hz都实现不了,这样将严重影响用户体验。关于这部分内容,请参考Oculus的相关文档(https://support.oculus.com/hc/en-us/articles/201835987-Oculus-Rift-Development-Kit-2-FAQ ),以及Oculus PC配置指南(https://www.oculus.com/en-us/oculus-ready-pcs/ )。

2.软件

苹果OS X操作系统:目前来说我们还是可以使用OSX 10.9以上的操作系统配合Oculus 0.0.5 runtime进行开发。但因为Oculus官方暂停了对OS X系统的支持,因此建议果粉们不要拍砖,还是老老实实用Windows系统,并使用Unity的原生VR功能。

Windows: 支持Windows 7,8,8.1和windows 10.

Android: 推荐使用android OS Lollipop 5.1或更高版本

显卡驱动:请确保你的显卡驱动是最新的。可以使用Oculus Configuration Utility来检查显卡驱动是否够用。

Oculus Runtime:为了在Unity 5.3中进行VR开发,请使用Oculus Runtime 0.8或更高版本。

PART V VR示例项目

作为本教程的一部分,我们在Asset Store上免费提供了一个VR示例项目。该项目可以同时支持DK2和Gear VR,我们将根据Oculus硬件的迭代不断更新该示例项目,同时也会在将来考虑支持其它头戴设备。

该示例项目的下载链接如下:https://www.assetstore.unity3d.com/#!/content/51519

1.示例场景

主要的示例场景包括:

(1)Intro: 介绍场景,教用户学习基本的交互

(2)Menu:菜单场景,可以选择迷你游戏来玩

(3)Flyer:一个飞行小游戏

(4)Maze:一个桌面迷宫游戏

(5)Target Gallery:一个回廊射击游戏

(6)Target Arena:一个360度射击竞技场游戏

怎么样,Unity还是很厚道的吧?

除了这些完整的小游戏之外,还有一些示例场景涵盖了本教程的一些重要概念:

(1)InteractiveItem:演示了如何VR中和物体进行交互

(2)RenderScale:演示了RenderScale将如何影响图像质量

(3)Reticle: VR中 reticle的基本示例

(4)Rotation:演示了物体将如何随头部运动做出响应

(5)Touchpad:演示了如何使用Gear VR的触摸板进行交互。

所涵盖的重要概念:

(1)自顶向下的桌面游戏机制

(2)朝屏幕内的星际火狐风格的射击游戏机制

(3)回廊射击游戏机制

(4)360度回廊射击游戏机制

(5)如何在VR中设计界面

(6)如何设计立体界面

(7)在VR中和物体进行交互的基本框架,包括如何处理视线焦点的切换

(8)reticle运动、缩放、阴影等

(9)基于头部旋转的运动

(10)如何使用Gear VR触摸屏,包括轻击、双击和滑动,或是在使用DK2时如何使用键盘鼠标进行交互。

(11)如何判断设备时Gear VR还是DK2

(12)如何在围绕中心点旋转摄像机时避免晕眩效应

(13)如何实现摄像机的消隐

(14)摄像机消隐的过渡

(15)物体的池化

除了提供这些概念之外,为了方便VR开发者的重用,我们还提供了其它一些有用的示例:

(1)摄像机的消隐

(2)摄像机消隐的过渡

(3)在VR中和物体进行交互的框架

(4)Hold以确认交互

(5)reticle运动和缩放

(6)和平台无关的文本

(7)指示特定方向的UI箭头

(8)移动UI元素,使其始终面向摄像机

(9)交互时倾斜UI物体。

为了运行本项目,开发者需要使用Unity5.3.0或以上版本,拥有推荐配置以上的软硬件,拥有一台DK2或是搭配合适三星手机的Gear VR,同时要下载Oculus Runtime 0.8或以上版本。

PART VI Oculus Unity Utilities

作为补充,你也可以下载Oculus官方提供的Oculus Unity Utilities(https://developer.oculus.com/downloads/ )来实现一些特殊功能。其中包含了有用的脚本和预设,比如如何调整IPD(瞳间距)等等。

本教程只关注原生Unity VR开发,因此对Oculus Unity Utilities,请参考Oculus官方网站以获取更多信息。(https://developer.oculus.com/downloads/game-engines/0.1.3.0-beta/Oculus_Utilities_for_Unity_5/)

好了,现在你已经知道自己需要哪些东西了。第一篇教程到此结束,在后续的时间里面我们将进一步学习如何开始VR开发

Unity5.3官方VR教程重磅登场-系列1相关推荐

  1. Unity5.3官方VR教程重磅登场-系列6 VR真机测试和产品发布

    不知道怎么开发VR游戏?Unity5.3官方VR教程重磅登场-系列6 VR真机测试和产品发布 王寒 · 3 个月前 在本教程中我们将学习如何将产品在两个真机平台上进行测试-DK2和Gear VR.当然 ...

  2. Unity5.3官方VR教程重磅登场-系列7 优化VR体验

    本文转自:知乎专栏-笨猫快乐学编程,作者:王寒 简介 对于VR应用来说,如果想要让用户获得好的用户体验,特别是免除恶心眩晕的困扰,在VR开发中进行优化是必不可少的,惟其如此才能达到我们期望的游戏运行帧 ...

  3. 不知道怎么开发VR游戏?Unity5.3官方VR教程重磅登场(转)

    如果你不是VR游戏或应用的开发者,可以选择无视下面的内容,这不是给普通用户看的~如果你之前曾经为Oculus Rift DK2或者Gear VR开发过,那么心里面一定曾经有千万个草泥马来回奔跑过.虽然 ...

  4. Unity5.3官方VR教程-系列1

    如果你不是VR游戏或应用的开发者,可以选择无视下面的内容,这不是给普通用户看的~ 如果你之前曾经为Oculus Rift DK2或者Gear VR开发过,那么心里面一定曾经有千万个草泥马来回奔跑过.虽 ...

  5. 颠覆传统下载体验 QNAP迅雷系列NAS重磅登场

    2014年4月8日--- 威联通科技欢庆品牌10周年,惊喜亮相迅雷系列NAS, 此为QNAP与迅雷官方联合开发设计NAS内置迅雷APP,,即QNAP迅雷系列NAS.主打机款为: TS-212P, TS ...

  6. 360手机官方刷机教程(N5系列通用)

    360手机官方刷机教程(N6系列+N7系列通用) 360手机刷机: N5.N5S.N6.N6Lite.N6PRO.N7.N7Lite.N7PRO.Q5.Q5Plus [前言] 以下,为摘录整合记录,仅 ...

  7. 360手机官方刷机教程(N6系列+N7系列通用)

    360手机官方刷机教程(N6系列+N7系列通用) 360手机刷机: N5.N5S.N6.N6Lite.N6PRO.N7.N7Lite.N7PRO.Q5.Q5Plus [前言] 以下,为摘录整合记录,仅 ...

  8. 2021 PyTorch官方实战教程(一)Tensor 详解

    点击上方"AI算法与图像处理",选择加"星标"或"置顶"重磅干货,第一时间送达 这个系列时pytorch官方实战教程,后续会继续更新.. 一 ...

  9. HTC推出了VIVE Comos 全新 VR(虚拟现实)系列产品

    据 The Verge 报道,近日,HTC 推出了 VIVE Comos 全新 VR(虚拟现实)系列产品.包括 Cosmos 精英套装.VIVE Cosmos XR 版.Cosmos Play 基础版 ...

最新文章

  1. mysql 清空表怎么恢复_mysql怎么恢复删除的表?mysql找回误删表的数据方法
  2. js代码收藏(zz)
  3. Leetcode 144. 二叉树的前序遍历 解题思路及C++实现
  4. TVM:通过Python接口(AutoTVM)来编译和优化模型
  5. isis软件_小白学单片机:单片机电路仿真利器-Protues仿真软件的使用(1)
  6. 入门几款好的UML工具介绍
  7. 凝思linux操作系统4.2内核版本_打破技术垄断!国产操作系统的逆袭之路
  8. 拒绝“脏”数据——数据质量评估深入剖析
  9. [家里蹲大学数学杂志]第392期中山大学2015年泛函分析考博试题回忆版
  10. Postman安装与简单使用
  11. python大麦网抢票_抢票攻略-大麦网
  12. win教程:如何查看本机的IP地址
  13. 网络工程师有什么发展?
  14. pdf在线翻译_推荐可以pdf等格式直接在线翻译的免费工具
  15. foxmail怎么设置服务器才能登陆网易企业邮箱
  16. group by后乱序问题原因和解决
  17. 基于PHP美食食谱的外文翻译,中国传统菜谱的英文翻译锦集
  18. 在CygWin中设置proxy
  19. 【Vegas原创】用vs2005调试wsf(jbs,vbs)
  20. 矛盾集合体——static的相关用法介绍

热门文章

  1. VMware虚拟机克隆ubuntu20.04系统IP相同
  2. TFT-LCD LVGL官方例程的应用
  3. 数据库导出的csv文件纯数字被转为科学计数法
  4. KEIL中STM32F4系列使能FPU
  5. C# NPOI写excel文件,设置某个单元格为自动筛选
  6. R语言定量资料的统计描述
  7. Datastage 入门示例
  8. Java 文本检索神器 “正则表达式”
  9. navicat for mysql排序_Navicat for MySQL功能最全总结
  10. 探讨数字人最真实与最有价值的应用场景|BOOK DAO 第二期共建