前言
這篇文章是【Oculus Interaction SDK】系列的一部分,如果發現有對不上的對方,可以回去翻看我之前釋出的文章,或在評論區留言。如果文章的內容已經不適用於新版本了,也可以直接聯絡我,我會持續更新文章內容。
當前適用版本:
- Unity 版本:2021.3.7f1c1
- Oculus Interaction SDK 版本:47.0
文章最近更新日期:2023.02.08
給可操作物體新增限制
在這裡依舊使用之前文章中製作好的物體 Cube(Both)進行測試,不清楚的可以看一下這篇文章
【Oculus Interaction SDK】(一)設定 VR 相機與控制器 && 實現簡單的抓取功能 - 千葉Christa - 部落格園 (cnblogs.com)
複製出一個物體,並修改名稱為 Limited Movement
之前在新增 Grabbable 元件的時候,我們都沒有給元件任何引數,那是因為專案執行時會自動新增一個單手操作器 One Grab Free Transformer
我們可以透過自己新增單手操作器的方式來限制物體的運動
限制移動
給測試物體新增元件 One Grab Translate Transformer
,然後把這個元件賦值給 Grabbable 的 One Grab Transformer
測試物體原本的位置是(0,1,0.3),我想讓它僅在 X 軸上移動,並且限制它的移動範圍為 (-0.2,0.2),那麼需要控制三個軸:Y 軸與 Z 軸鎖定在原位置,X 軸給出活動範圍
注:這裡設定的引數對應物體的 LocalPosition
完成後效果如下
限制旋轉
給測試物體新增元件 One Grab Rotate Transformer
,然後把這個元件賦值給 Grabbable 的 One Grab Transformer
在只調整旋轉軸(Rotation Axis),不給旋轉錨點、不限制角度的情況下,物體會自身中心為旋轉錨點,向對應方向進行旋轉
效果如下:
如果給定一個旋轉中心(Pivot),該物體就會圍繞旋轉中心進行旋轉(為了方便演示,對測試物體進行了縮放,同時包含了角度限制)
效果如下: