UnityVR中 如何实现VR模式下滑动Slider让Cube变色。 如何滑动Slider

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UnityVR中 如何实现VR模式下滑动Slider让Cube变色。 如何滑动Slider相关的知识,希望对你有一定的参考价值。

参考技术A 交互设备是什么?
没有手柄之类的东西,我们用射线来交互,ugui本身也是用射线来判定ui的状态,道理是一样的。

VR预览

VR预览

Unity VR使得开发者能直接从Unity中以VR设备为发布目标,而不需要在项目中使用任何额外的插件。它提供了兼容多种设备的基础API和特性集。它已经被设计于对外来设备和软件提供向前兼容性。VR API表面上进行了很小的设计,但它将会随着VR的发展而增强。

通过使用Unity中原生的VR支持,你可以获得:

  • 对每个VR设备的稳定版本
  • 使用单一的API接口和不同的VR设备交互
  • 不需要针对每种设备提供额外插件的整洁的项目目录
  • 在你的应用程序中包含多种设备以及在多种设备间切换的能力
  • 增强的性能(Unity引擎底层存在为原生设备优化的可能性)

开启Unity VR支持

为了使得你的游戏构建和编辑器支持VR,打开Player Settings(菜单:Edit > Project Settings > Player)。选择Other Settings并勾选Virtual Reality Supported复选框。为每个构建目标进行此项设置。在standalone构建中开启VR支持并不会在Android(反之依然)也开启VR支持。

使用复选框下方显示的Virtual Reality SDK列表来为每个构建目标添加和移除VR设备。列表的顺序是Unity在运行时尝试开启VR设备的顺序。第一个被正确初始化的设备将会被使用。这个列表顺序在构建游戏时是一样的(译者注,也就是不需要和上面说的Virtual Reality Supported为每个平台单独设置)。

当开启VR时会发生什么

当在Unity中开启VR时,一些处理会自动进行:

自动渲染到头戴显示

你场景中的所有摄像机能直接渲染到头戴式显示器(head mounted display, HMD)。View和Projection矩阵会自动为用户调整以进行头部追踪,位置追踪和视野计算。
可以使Camera组件的stereoTargetEye属性来关闭渲染到HMD。或者,你可以设置Camera的Target Texture属性使得其渲染到纹理上。

  • 使用stereoTargetEye属性,你可以设置摄像机只渲染到HMD的指定眼睛上。这对于一些诸如狙击手视野或立体视频的特殊效果很有帮助。为了达成这个效果,添加2个摄像机到场景中:一个指向左眼,另一个指向右眼。设置layer mask来调整发送到每只眼睛的内容。

自动头部追踪输入

如果你的设备是头戴设备,头部追踪和相应的视野(FOV, Field of View)是自动应用到摄像机的。你可以手动设置FOV为特定值,但你将不能直接设置摄像机的transform。阅读了解摄像机部分以学习更多相关内容。
头部追踪和位置追踪是自动应用的,因此在帧渲染之前位置和方向会最接近地匹配用户的位置和方向。这带来较好的VR体验,并防止用户觉得恶心。

了解摄像机

摄像机的transform会被头部追踪位置覆盖。为了移动或旋转摄像机,需要把他作为其他GameObject的子对象。这使得所有对摄像机父节点修改transform的行为都可以影响到摄像机自身。这也使得使用脚本移动或旋转摄像机成为可能。

想象一下摄像机的位置和旋转为用户在他们的位置处所看的。
坐着和room-scale这两种 VR体验存在不同点:

  • 如果你的设备支持room-scale体验,摄像机的起始位置将会是用户游乐空间的中心。
  • 使用坐着的体验,你可以使用VR.InputTracking.Recenter()设置摄像机到恰当的位置。

每个渲染到设备的摄像机会使用用户在每个VR SDK的软件设置的输入自动覆盖摄像机的FOV。你可以通过脚本为你的应用程序设置自定义的FOV。

编辑器模式

如果你的VR设备支持Unity Editor模式,在Editor中按下Play按钮则可以直接在你的设备上测试。
如果你将stereoTargetEye设置为left或both,则左眼渲染到Game View窗口。如果你将stereoTargetEye设置为right,则右眼被渲染。

  • 没有自动并排渲染左右眼的视图
  • 为了在Game视图中看到并排视图,创建两个相机,设置其中一个渲染左眼,另一个渲染右眼,并设置viewport以实现并排渲染。

注意到在编辑器模式下运行时可能会过载,你可能会体验到延迟或剧烈震动。UnityIDE需要渲染每个窗口,因此为Game视图设置”Maximize on Play”以便减少编辑器的渲染过载。

  • Unity Profiler是一个有用的工具,它能让你知道你的游戏运行在编辑器外时性能是怎样的。然而,profiler自身也会增加负载。

最好的检查你的性能的方式是直接为你的目标平台构建并直接运行。你将在非development build版本运行时观察到最好的性能表现,但development build可以允许你连接Unity的Profiler以进行更好的性能分析。

构建应用:选择启动设备

你构建的应用程序初始化和开启的设备顺序与Player Settings列表(查看上面的开启VR支持)中的顺序相同。Player Settings列表中没有提供的设备在最终构建中也不可用。

如果你想要以一个不在列表顶部的设备开始初始化,你可以传递命令行参数给可运行程序以强制以指定的设备启动。同样,这个设备需要已经包括在构建应用时的列表中。

用于启动指定设备的命令行参数是:
-vrmode DEVICETYPE

这里DEVICETYPE是支持的VR设备列表中的一个名字。

例如:MyGame.exe -vrmode oculus

在Unity中进行VR开发的硬件和软件推荐

硬件

达到和你的目标HMD相同的帧率对于一个良好的VR体验是必要的。这必须和所用HMD使用匹配的刷新率。如果帧率低于HMD的刷新率,玩家可能会经常感觉到恶心。
VR设备的刷新率:

VR设备刷新率
Gear VR60 hz
Oculus CV190 hz
Vive90hz

软件

  • Windows:同时兼容Windows 7, 8, 8.1和Windows 10。
  • Android:Android OS Lollipop 5.1或更高。
  • OS X:OS X 10.9+ 使用Oculus 0.5.0.1 Runntime。然而,Oculus已经停止为OS X开发,因此在Unity中为了原生VR功能,使用Windows系统。
  • 图形和驱动:确认你的驱动已经更新到最新。每个设备保持使用最新的驱动,因此旧的驱动可能不会被支持。
  • Oculus Runntime:Runntime 0.8或更高。


    回到UnityVR首页

以上是关于UnityVR中 如何实现VR模式下滑动Slider让Cube变色。 如何滑动Slider的主要内容,如果未能解决你的问题,请参考以下文章

UnityVR开发第一周小结

VR预览

VR预览

VR预览

猿创征文|School StartsFirstProject~UnityVR(HTCVive设备开发)

移动端swiper做页面切换,如何让做最后一页滑动时回到第一页