前言
這篇文章是【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
元件並完成引用
大功告成!