admin管理员组文章数量:1345481
Oculus
经过在网上百度,找到了点资料,由此记录一下,并且感谢原作者的分享,有侵权请联系!
Oculus研究第一天
1.实现UI凝视
前期配置
导入Oculus插件包
OculusSampleFramework.unitypackage
若使用Unity 5.1或更新的版本,确保在Edit -> Project Settings -> Player : Other Setting -> Rendering设置里勾选Virtual Reality Supported。
实现过程(可以点击space或者buttonone用来确认)
替换相机
- 删除场景中的Camera
- 添加
OVR/Prefabs/OVRCameraRig
预置体到场景中作为相机 - 将相机调整到合适的位置
更改输入模块
- 选择Hierarchy中的
EventSystem
对象 - 移除用于处理常规鼠标输入的
StandaloneInputModule
组件 - 添加
OVRInspector/Scripts/OVRInputModule
脚本 - 把
OVRCameraRig
对象下的CentreEyeAnchor
拖到OVRInputModule
的RayTransform
属性上,使射线始终从双眼中间位置发出 OVRInputModule
中的JoyPadClickButton
和GazeClickKey
分别用于设置Touch手柄和键盘上操作UI的按键
- 选择Hierarchy中的
添加凝视指针
- 添加
OVRInspector/Resources/Prefabs/GazePointerRing
预置体到场景中来指示当前凝视的位置 - 预置体上除了
OVRGazePointer
脚本还有一个与粒子特效有关的脚本,如不需要可以删除 - 把
OVRCameraRig
对象下的CentreEyeAnchor
拖放到OVRGazePointer
脚本的RayTransform
属性上,使指针跟随射线
- 添加
设置Canvas
- 将需要凝视操作的Canvas的
Render Mode
属性设置为World Space
- 将Canvas中的
EventCamera
设置为OVRCameraRig
下的CenterEyeAnchor
- 移除Canvas绑定的用于监测鼠标与GUI元素交互的
GraphicRaycaster
组件 - 添加用于处理射线的
OVRInspector/Scripts/OVRRaycaster
脚本 - 在
OVRRaycaster
组件中,将Blocking Objects
属性设为All
,使凝视行为可以锁定场景中的其他可交互对象
- 将需要凝视操作的Canvas的
更改指针移动方式(从右手手柄发射射线)
若希望通过其他输入设备移动指针,则进行此步,以右手Touch控制器为例。- 选择
EventSystem
对象,把OVRInputModule
的RayTransform
属性改为OVRCameraRig
对象下的RightHandAnchor
,使射线从右手的Touch控制器发出 - 选择
GazePointerRing
对象,将OVRGazePointer
脚本的RayTransform
属性改为OVRCameraRig
对象下的RightHandAnchor
,使指针跟随射线
- 选择
添加世界坐标下的鼠标
若需要为VR场景提供与凝视一起存在的鼠标操作UI的功能,则进行此步操作。- 将
OVRInspector/Resources/Prefabs/CanvasPointer
预置体添加为Canvas对象的子对象 - 将Canvas对象的
OVRRaycaster
脚本中的Pointer
属性设置为新添加的CanvasPointer
对象 - 为Canvas对象添加
OVRInspector/Scripts/OVRMousePointer
脚本
- 将
本文标签: Oculus
版权声明:本文标题:Oculus 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1708692117a752494.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论