【Oculus Interaction SDK】(七)使用射線進行互動(物體 & UI)

2023-02-13 12:03:44

前言

這篇文章是【Oculus Interaction SDK】系列的一部分,如果發現有對不上的對方,可以回去翻看我之前釋出的文章,或在評論區留言。如果文章的內容已經不適用於新版本了,也可以直接聯絡我,我會持續更新文章內容。

當前適用版本:

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

文章最近更新日期:2023.02.13

 


為控制器和手新增射線互動功能

為控制器新增射線互動

在 Project 視窗搜尋 ControllerRayInteractor,使其成為 ControllerInteractors 的子物體

 

將射線與控制器繫結,並把 ControllerRayInteractor 新增到互動列表(此步開始右手與左手操作類似,不做演示)

 

效果如下

 

為手勢追蹤新增射線互動

在 Project 視窗搜尋 ControllerRayInteractor,使其成為 ControllerInteractors 的子物體

 

將射線與對應的手繫結,並把 HandRayInteractor 新增到互動列表(此步開始右手與左手操作類似,不做演示)

 

效果如下

 

製作可與射線互動的物體

我們現在要做一個可以響應射線操作的物體

新建一個 Cube 命名為 Ray Cube,併為其新增 Collider Surface 和 Ray Interactable 元件

 

為了更方便地觀察射線的效果,來為 Ray Cube 新增一個 Interactable Unity Event Wrapper 元件,並新增幾組事件

 

現在就可以清楚地看到射線觸發的效果了

 

製作可與射線互動的 UI

新建一個空物體 Ray UI,為其新增一個 Canvas 作為子物體,Canvas 的 Render Mode 修改為 World Space

隨便放幾個控制元件上去,擺放好位置

 

在 Ray UI 下建立空的子物體 UI Collider 和 UI PlaneSurface

 

給 UI Collider 新增 Box Collider 元件,調整碰撞器邊界使其與 UI 大小保持一致

 

繼續新增 Collider Surface 元件,並在 Collider 處參照自身的 Box Collider

 

為 UI PlaneSurface 新增 Plane Surface 元件

 

找到 EventSystem 移除 Standalone Input Module 元件,新增 Pointable Canvas Module 元件

 

最後回到 Canvas,新增 Ray Interactable 元件和 Pointable Canvas 元件並完成參照

 

大功告成!

 


參考資料

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

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