共用方式為


物件操作工具 — MRTK2

物件操作工具

ObjectManipulator是操作行為的新元件,先前位於ManipulationHandler中。 物件操作工具會進行一些改善和簡化。 此元件是操作處理常式的取代專案,即將淘汰。

ObjectManipulator腳本會使用一或兩手讓物件可移動、可調整且可旋轉。 物件操作工具可以設定為控制物件如何回應各種輸入。 腳本應該使用大部分的互動形式,例如HoloLens 2清楚的手部、HoloLens 2手部光線、HoloLens 1 注視和手勢,以及沉浸式頭戴式裝置動作控制器輸入。

如何使用物件操作工具

若要使用物件操作工具,請先將 ObjectManipulator 腳本元件新增至 GameObject。 請務必同時將碰撞器新增至 物件,使其可抓取界限相符。

若要讓物件回應近乎清楚的手部輸入,請同時新增 NearInteractionGrabbable 腳本。

藉由將固定的主體元件新增至 物件,即可為物件操作工具啟用物理行為。 新增此元件所啟用的物理行為會在 物理和碰撞中更詳細地討論。

此外,操作也可以透過將 操作條件約束元件 新增至 物件來限制。 這些是處理操作的特殊元件,並以某種方式變更操作行為。

在 Unity 編輯器中使用操作處理常式

偵測器屬性和欄位

物件操作工具結構

一般屬性

主機轉換

將操作的物件轉換。 預設為元件的 物件。

操作類型

指定是否可以使用一手或兩手操作物件。 因為這個屬性是旗標,所以可以選取這兩個選項。

  • 單手操作:選取時啟用單手操作。
  • 雙手:選取時啟用兩個手部操作。

允許遠距操作

指定操作是否可以使用與指標的遠距互動來完成。

單手操作屬性

接近單手旋轉模式

指定物件在一手附近抓取物件時的行為方式。 這些選項僅適用于已表達的手部。

  • 繞物件中心旋轉:物件會使用手部旋轉來旋轉,但與物件中心點有關。 物件在旋轉時似乎移動較少,但手部與物件之間可能會有中斷連線感。 更適合用於遠距互動。
  • 旋轉擷取點:旋轉物件與指指之間關於抓取點的手部。 它應該會覺得物件是由手部所持有。

單手旋轉模式遠

指定物件在距離上以一手抓取物件時的行為方式。 這些選項僅適用于已表達的手部。

  • 旋轉物件中心:使用手部旋轉來旋轉物件,但與物件中心點有關。 適合用於在物件旋轉時不移動物件中心的距離檢查。
  • 繞抓取點旋轉:使用手部旋轉來旋轉物件,但關於指標光線點擊點。 適用于檢查。

雙手操作屬性

雙手操作類型

指定兩個手部操作如何轉換物件。 因為這個屬性是旗標,所以可以選取任意數目的選項。

  • 移動:如果選取,則允許移動。
  • 調整:如果選取,則允許調整。
  • 旋轉:選取時允許旋轉。

操作處理常式

條件約束

啟用條件約束

此設定會啟用連結 的條件約束管理員。 轉換變更將由註冊至所選 條件約束管理員的條件約束來處理。

條件約束管理員

下拉式清單允許選取任何附加 的條件約束管理員。 物件操作工具可確保隨時都會附加 條件約束管理員 。 請注意,相同類型的多個元件會顯示在 unity 中的相同名稱之下。 為了更容易區分相同物件上的多個條件約束管理員,可用的選項會顯示所選取條件約束管理員的設定提示, (手動或自動條件約束選取) 。

移至元件

條件約束管理員選取專案隨附 [移至元件 ] 按鈕。 此按鈕會導致偵測器捲動至選取的元件,以便進行設定。

物理特性

只有在 物件具有 RigidBody 元件時,才會顯示本節中的設定。

發行行為

指定操作物件應該在釋放時保留的實體屬性。 因為這個屬性是旗標,所以可以選取這兩個選項。

  • 保持速度:當物件釋放時,如果選取此選項,則會保留其線性速度。
  • 保持Angular速度:釋放物件時,如果選取此選項,則會維持其角度速度。

使用強制進行接近操作

執行接近操作時,是否使用物理力來移動物件。 將此設定為 false 會讓物件感覺更直接連接到使用者手。 將這個設定為 true 會接受物件的品質和慣性,但可能會覺得物件是透過彈簧連接。 預設值為 false

平滑處理

平滑遠

是否針對遠距互動啟用畫面播放速率獨立平滑。 預設會啟用遠平滑。

接近平滑

是否啟用畫面播放速率獨立平滑處理,以進行接近互動。 預設會停用接近平滑,因為效果可能會被視為與手部「中斷連線」。

平滑作用中

過時,未來版本將會移除。 應用程式應該使用 SmoothingFar、SmoothingNear 或兩者的組合。

移動 lerp 時間

要套用至移動的平滑量。 0 的平滑表示沒有平滑。 最大值表示值不會變更。

旋轉 lerp 時間

要套用至旋轉的平滑量。 0 的平滑表示沒有平滑。 最大值表示值不會變更。

Scale lerp time

要套用至縮放比例的平滑度。 0 的平滑表示不會平滑。 最大值表示值不會變更為值。

操作事件

操作處理常式提供下列事件:

  • OnManipulationStarted:操作啟動時引發。
  • OnManipulationEnded:操作結束時引發。
  • OnHoverStarted:當手/控制器將可操作、接近或遠方時引發。
  • OnHoverEnded:當手/控制器取消暫留操作、接近或遠處時引發。

操作的事件引發順序為:

OnHoverStarted - >OnManipulationStarted - >OnManipulationEnded - >OnHoverEnded

如果沒有操作,您仍會取得具有下列引發順序的暫留事件:

OnHoverStarted - >OnHoverEnded

物理和碰撞

將固定的實體元件新增至與物件操作工具相同的物件,即可啟用物理行為。 這不只會啟用上述 發行行為的 設定,也會啟用衝突。 若沒有固定的主體元件,衝突在操作期間不會正確運作:

  • 在操作的物件與靜態碰撞器之間發生衝突 (亦即,具有碰撞器但沒有固定物件) 無法運作的物件,操作的物件會直接通過不受影響的靜態碰撞器。
  • 操作物件與固定物件之間的衝突 (亦即具有碰撞器和固定物件的物件,) 導致固定物件有衝突回應,但回應是跳躍且非自然的。 操作物件上也沒有任何衝突回應。

新增固定的主體時,碰撞應該能正常運作。

沒有固定的主體

無固定主體

使用固定的主體

剛體

彈性 (實驗性)

透過物件操作工具操作物件時,可以使用彈性。 請注意, 彈性系統 仍處於實驗狀態。 若要啟用彈性,請連結現有的彈性管理員元件,或透過 Add Elastics Manager 按鈕建立並連結新的彈性管理員。

界限控制項彈性

另請參閱