Unity VR 入门

Unity加入了一些对VR的内置的支持,但是只针对几种特定的VR设备。这个指南会专注于Oculus 系列的VR设备, 特别是 Oculus Rift Development Kit 2 (DK2 ) 和 消费者版本的Gear VR(一种手机外设,需要三星Galaxy s6, s6 Edge, s6 Edge+, 或者 Note 5)。也许以后会有关于Note 4的内容,但是暂时不涉及。

其他 VR 头戴设备也能运行unity的项目,例如HTC Vive。如果将来新加入的一些VR平台的话,这个文档也会更新。

虽然这些内容对所有VR头戴设备都适用,但是请仔细阅读VR设备生产商的手册获取更多详细内容。

在Unity中启用VR


请确认你已经安装了 Oculus runtime 0.8 和 Unity 5.3 以上的版本。

开启VR功能:Edit > Project Settings> Player > Other Settings > Rendering

然后在检查器面板(Inspector)把“Virtual Reality Supported”勾选上。

运行时,这个选项可以用UnityEngine.VR.VRSettings.enabled 属性获取到,显示如下

using UnityEngine;
using UnityEngine.VR;public class ToggleVR : MonoBehaviour
{//Example of toggling VRSettingsprivate void Update (){//If V is pressed, toggle VRSettings.enabledif (Input.GetKeyDown(KeyCode.V)){VRSettings.enabled = !VRSettings.enabled;Debug.Log("Changed VRSettings.enabled to:"+VRSettings.enabled);}}
}

在Unity中预览VR

打开Unity的VR功能,连接好DK2(Oculus),进入Play Mode,这时就会在DK2 上显示游戏画面了,Editor里也会显示。这种模式大大加快了调试,不用打包成可执行文件再装到VR里去看我们修改的效果。创建了VR内容的开发者会注意到,并排的图像已经代替了单独的图像。

请注意,并不需要为了每只眼睛都创建一个摄像机,每个摄像机都会用VR模式进行渲染,除非那些指定了Render Texture (渲染纹理)的摄像机。关于Render Texture (渲染纹理)的更多信息,请查看手册。为了降低每个摄像机的渲染成本,已经进行了一些优化,例如,一次为两个眼睛同时做裁切和阴影渲染。

关于VR话题的附加文档可以在Unity Manual(手册) 和 Unity Scripting API (API 文档) 中查看

在Unity中开发VR的硬件和软件的需求

因为VR是一种新型多媒体设备,在写本文的时候有一些硬件和软件上的限制,在下面大概描述一下。

硬件

达到相应的帧数对于一个好的VR体验是很关键的,而且这个刷新速率需要和头戴设备的屏幕相一致。在DK2 上,这个值必须是75fps,在Gear VR上,刷新速率必须是60fps。如果刷新速率比这个低,用户会有明显的感觉,很容易晕。

除了要达到稳定的帧数,同时GPU需要足够强力来支持VR设备的分辨率。在DK2上,需要75HZ,1920×1080。请记住如果你要在Oculus Rift(CV1)上开发,你将面临更苛刻的条件,这个设备需要90hz 和  2160 × 1200的分辨率。

如果你正在用DK2, 请确认请确定你的电脑硬件能够同时满足分辨率和刷新频率两个需求。很多笔记本用一个芯片来切换独立显卡和集成显卡,不过这些芯片一般都不能支持1920 ×1080 分辨率下 跑到75hz,会导致不好的VR体验甚至眩晕。请参考Oculus的文档和Oculus PC 指南看有哪些能支持的硬件。

软件

OS X:现在在OS X 10.9+ 的系统上是可以运行Oculus 0.0.5 runtime 的, 但是,Oculus 已经暂停了对于OS X 的开发, 用Unity做原生VR开发的话,我们建议用Windows。

Windows:Win7,8,8.1 10,都是可以的。

Android:建议使用Lolipop5.1 或者更高。

显卡和驱动:请确保你的显卡驱动是最新的。旧的可能不支持。检查Oculus的设备设置,看看是不是支持你的驱动。

Oculus Runtime:要在Unity5.3中 使用VR设备支持的话,请使用Oculus Runtime 0.8 或者更高。

VR 示例项目

作为教程的一部分,我们准备了一个例子放在Asset Store上免费下载。这个示例项目在DK2 和Gear VR上都能运行, 而且我们会在将来为了Oculus 的硬件去更新它,也包括Oculus以外的头戴显示设备制造商。请关注Unity blog 获取最新的消息。

你可以在Asset Store 中下载这个项目来查看工程源码。

示例场景

场景主要包括:

·Intro:一个简单的介绍场景,包含一些最基本的互动。

·Menu:一个菜单场景,可以选一个小游戏来玩。

·Flyer:一个飞行游戏。

·Maze:一个桌面迷宫游戏。

·Target Gallery:一个走廊打靶游戏。

·Target Arena:一个360°的射击场景。

还有很多示例场景,大概列举一下,详细内容参见文档:

·InteractiveItem:演示了在VR中和物体互动的基本方式

·RenderScale:给一个图片添加渲染尺寸的特效。

·Reticle:在VR中添加十字线(准星)的简单示例。

·Rotation:演示当头部移动时,物体会如何表现。

·Touchpad:如何获取Gear VR 上触控板的输入。

涉及到以下几个要点:

·自上而下的桌游玩法模式

·扎进屏幕的,星际火狐类型游戏玩法

·打靶类型的游戏玩法

·360°打靶游戏玩法

·在VR上使用Unity UI

·空间立体UI

·在VR上和物体互动的基本框架,包括处理“视线悬停”和“视线移出”

·十字线(类似于准星)的移动,缩放,shader,和恢复正常

·基于头部转动的移动

·处理Gear VR 触控板事件, 包括 点击,双击,滑动,或者使用DK2时,处理键盘和鼠标事件

·为Gear VR 和 DK2 使用条件编译

·在相机围绕一个点转动时避免眩晕

·相机淡出

·相机淡出切换

·对象池

这个项目主要实现了一些VR中的概念,提供VR开发的入门,同时也提供了一些可重用的实例:

·相机淡出

·相机转场效果

·在VR中和物体互动的框架

·hold住确认的动作

·十字线的移动和缩放

·平台相关的文本

·ui指针来指示面对的方向

·永远面向摄像机的UI

·互动时改变UI 颜色

要运行项目,需要一份Unity 5.3.0,  硬件和软件要达到上面概述提到的标准,有DK2 或者 Gear VR和与之配套的手机,并且根据相应厂商的指导手册配置好开发模式(DK2/ Gear VR),还有,需要Oculus Runtime 0.8 或者以上。

Oculus Unity Utilities

根据项目中的功能需求,可以在这里下载Oculus Unity Utilities, 其中包含了一些VR项目中有用的脚本和预设,例如 如何修改IPD(Interpupillary distance:瞳距),或者跟踪范围。

我们的文章关注在原生Unity VR 交互, 关于设备的更多信息和他们与项目的兼容性,请查看Occulus Website。

原文:VR OVERVIEW

·

【翻译】 Unity3D VR 教程:1.VR概述相关推荐

  1. unity3D-游戏/AR/VR在线就业班 C#入门访问修饰符学习笔记

    unity3D-游戏/AR/VR在线就业班 C#入门访问修饰符学习笔记 点击观看视频学习:http://edu.csdn.NET/lecturer/107 访问修饰符 public --公共的,在哪里 ...

  2. Unity3D for VR 学习(5): VR Gaze Input

    在VR中,最"贴切"的输入方式是眼神,即 VR Gaze Input,如盯着某UGUI UI.某GameObject,2s后触发事件–  显示ToolTip或者切换场景等. 因为这 ...

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

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

  4. Unity3D 升级2020版VR开发的一些问题

    Unity3D升级2020版VR开发可能遇到的一些问题 1.Unity3D 2020版VR已经整合到XR中并统一以插件包形式提供 在Unity2020版本以前,打开VR功能是在Player Setti ...

  5. [转]【Unity3D入门教程】Unity3D简介、安装和程序发布

    <Unity3D入门教程>会带领零基础的初学者,一步步学会使用Unity3D来开发简单的应用程序,走近游戏开发的世界.本系列教程虽然不会面面俱到地深入到全部的知识点,但是会涉及到所有入门阶 ...

  6. Unity3d TextMeshPro教程

    转载原文地址:Unity3d TextMeshPro教程 TextMesh Pro是Unity默认文本组件的替代品.TextMesh Pro和默认组件一样拥有高性能,它使用了完全不同的Signed D ...

  7. VR插件:VR Interaction Framework 1.7(VRIF)(一)

    VR插件:VR Interaction Framework 1.7(VRIF)(一) 开篇首先先说说这个插件得官方文档地址(他的这个官方文档写的不是很全面,只是简单介绍了几个常用得组件使用方法以及里边 ...

  8. Xilinx Vitis HLS教程1--Vitis HLS概述[01/12]

    Xilinx Vitis HLS教程1--Vitis HLS概述[01/12] 前言 1 软件工程师的设计原则 1.1 简介 1.2 吞吐量和性能 1.3 架构问题 1.4 FPGA编程的3大范式 1 ...

  9. EWSTM8系列教程04_菜单概述(一)

    IAR最新全套教程: 1.EWSTM8系列教程01_IAR介绍.下载.安装和注册 2.EWSTM8系列教程02_新建基础软件工程 3.EWSTM8系列教程03_主窗口.工具栏的概述 4.EWSTM8系 ...

  10. VR虚拟现实|vr全景制作|vr全景拍摄|vr全景加盟|vr全景智慧城市

    |VR全景|720度全景|360度全景|全景培训|全景代理|视频全景|虚拟现实|全景制作|全景拍摄|全景展示|全景发布|全景网站|手机全景|微信全景|三维全景|全景互动|航拍全景|房地产全景|酒店全景 ...

最新文章

  1. linux生成日志文件,linux实现按天生成日志文件并自动清理
  2. mpython_mPython
  3. Boost::context模块callcc的stack测试程序
  4. C++11空指针(nullptr)
  5. 前沿 | NVIDIA PyTorch库让3D深度学习研究更简单!
  6. 使用Confluence如何输出一份结构清晰 可读性高的测试文档?
  7. 一小时入门proteus使用教程
  8. day13、1 - 抓包--科来软件使用
  9. 中兴服务器默认用户名密码是什么,中兴路由器登录地址默认用户名密码
  10. GANDCRAB V5.2勒索病毒,不可破解,尽快防御!
  11. 计算机控制pwm,如何制作自制脉宽调制(PWM)电机控制电路
  12. Java double value_Java Double doubleValue()用法及代码示例
  13. 什么是CI/CD?它们与敏捷开发和devops的关系?
  14. 三星性能测试软件,三星T7 性能测试
  15. 5GNR漫谈1:NR物理层帧结构
  16. 根据某个特定字符截取字符串(js)
  17. leetcode 二分法 最大值最小化/最小值最大化
  18. 新路程------imx6 wtd摘要
  19. 数字IC设计 - 数字集成电路基础
  20. spark agg算子使用

热门文章

  1. Edge浏览器如何关闭金山毒霸安全主页.
  2. ibm软件工程师含金量_.NET软件工程师最好取得哪些证书?(高分求高手)
  3. Ubuntu关机后自动重启问题的解决方案
  4. 计算机共享文件输入网络密码是什么,Win7共享文件时需要输入网络密码怎么办?...
  5. 8086/8088寻址方式
  6. 计算机为什么老是重启,为什么电脑开机后总是自动重启?电脑开机后自动重启怎么办?...
  7. Python爬取豆瓣电影信息并分析
  8. Python对电影数据简单分析
  9. JAVA如何通过身份证号码计算年龄、生日、性别
  10. 一文梳理2021年常见消息中间件MQ与RabbitMQ面试题