【Oculus Interaction SDK】(三)限制可操作物體的移動 / 旋轉

千葉Christa發表於2023-02-08

前言

這篇文章是【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

我們可以透過自己新增單手操作器的方式來限制物體的運動

【Oculus Interaction SDK】(三)限制可操作物體的移動 / 旋轉

 

限制移動

給測試物體新增元件 One Grab Translate Transformer,然後把這個元件賦值給 Grabbable 的 One Grab Transformer

測試物體原本的位置是(0,1,0.3),我想讓它僅在 X 軸上移動,並且限制它的移動範圍為 (-0.2,0.2),那麼需要控制三個軸:Y 軸與 Z 軸鎖定在原位置,X 軸給出活動範圍

注:這裡設定的引數對應物體的 LocalPosition

【Oculus Interaction SDK】(三)限制可操作物體的移動 / 旋轉

 

完成後效果如下

【Oculus Interaction SDK】(三)限制可操作物體的移動 / 旋轉

 

限制旋轉

給測試物體新增元件 One Grab Rotate Transformer,然後把這個元件賦值給 Grabbable 的 One Grab Transformer

在只調整旋轉軸(Rotation Axis),不給旋轉錨點、不限制角度的情況下,物體會自身中心為旋轉錨點,向對應方向進行旋轉

【Oculus Interaction SDK】(三)限制可操作物體的移動 / 旋轉

 

效果如下:

【Oculus Interaction SDK】(三)限制可操作物體的移動 / 旋轉

 

如果給定一個旋轉中心(Pivot),該物體就會圍繞旋轉中心進行旋轉(為了方便演示,對測試物體進行了縮放,同時包含了角度限制)

【Oculus Interaction SDK】(三)限制可操作物體的移動 / 旋轉

 

效果如下:

【Oculus Interaction SDK】(三)限制可操作物體的移動 / 旋轉

 

參考資料

https://www.youtube.com/watch?v=P0rbFHWpKnA

相關文章