【Oculus Interaction SDK】(七)使用射线进行交互(物体 & UI)

时间:2023-02-13 12:08:14

这篇文章是【Oculus Interaction SDK】系列的一部分,如果发现有对不上的对方,可以回去翻看我之前发布的文章,或在评论区留言。如果文章的内容已经不适用于新版本了,也可以直接联系我,我会持续更新文章内容。

当前适用版本:

  • Unity 版本:2021.3.7f1c1
  • Oculus Interaction SDK 版本:47.0

文章最近更新日期:2023.02.13

 


为控制器和手添加射线交互功能

为控制器添加射线交互

在 Project 窗口搜索 ControllerRayInteractor,使其成为 ControllerInteractors 的子物体

【Oculus Interaction SDK】(七)使用射线进行交互(物体 & UI)

 

将射线与控制器绑定,并把 ControllerRayInteractor 添加到交互列表(此步开始右手与左手操作类似,不做演示)

【Oculus Interaction SDK】(七)使用射线进行交互(物体 & UI)

【Oculus Interaction SDK】(七)使用射线进行交互(物体 & UI)

 

效果如下

【Oculus Interaction SDK】(七)使用射线进行交互(物体 & UI)

 

为手势追踪添加射线交互

在 Project 窗口搜索 ControllerRayInteractor,使其成为 ControllerInteractors 的子物体

【Oculus Interaction SDK】(七)使用射线进行交互(物体 & UI)

 

将射线与对应的手绑定,并把 HandRayInteractor 添加到交互列表(此步开始右手与左手操作类似,不做演示)

【Oculus Interaction SDK】(七)使用射线进行交互(物体 & UI)

【Oculus Interaction SDK】(七)使用射线进行交互(物体 & UI)

 

效果如下

【Oculus Interaction SDK】(七)使用射线进行交互(物体 & UI)

 

制作可与射线交互的物体

我们现在要做一个可以响应射线操作的物体

新建一个 Cube 命名为 Ray Cube,并为其添加 Collider Surface 和 Ray Interactable 组件

【Oculus Interaction SDK】(七)使用射线进行交互(物体 & UI)

 

为了更方便地观察射线的效果,来为 Ray Cube 添加一个 Interactable Unity Event Wrapper 组件,并添加几组事件

【Oculus Interaction SDK】(七)使用射线进行交互(物体 & UI)

 

现在就可以清楚地看到射线触发的效果了

【Oculus Interaction SDK】(七)使用射线进行交互(物体 & UI)

 

制作可与射线交互的 UI

新建一个空物体 Ray UI,为其添加一个 Canvas 作为子物体,Canvas 的 Render Mode 修改为 World Space

随便放几个控件上去,摆放好位置

【Oculus Interaction SDK】(七)使用射线进行交互(物体 & UI)

 

在 Ray UI 下创建空的子物体 UI Collider 和 UI PlaneSurface

【Oculus Interaction SDK】(七)使用射线进行交互(物体 & UI)

 

给 UI Collider 添加 Box Collider 组件,调整碰撞器边界使其与 UI 大小保持一致

【Oculus Interaction SDK】(七)使用射线进行交互(物体 & UI)

 

继续添加 Collider Surface 组件,并在 Collider 处引用自身的 Box Collider

【Oculus Interaction SDK】(七)使用射线进行交互(物体 & UI)

 

为 UI PlaneSurface 添加 Plane Surface 组件

【Oculus Interaction SDK】(七)使用射线进行交互(物体 & UI)

 

找到 EventSystem 移除 Standalone Input Module 组件,添加 Pointable Canvas Module 组件

【Oculus Interaction SDK】(七)使用射线进行交互(物体 & UI)

 

最后回到 Canvas,添加 Ray Interactable 组件和 Pointable Canvas 组件并完成引用

【Oculus Interaction SDK】(七)使用射线进行交互(物体 & UI)

 

大功告成!

【Oculus Interaction SDK】(七)使用射线进行交互(物体 & UI)

 


参考资料

https://www.youtube.com/watch?v=bkn-daQzALQ&t=22s

https://www.youtube.com/watch?v=q2auix_Vqd8&t=315s