物件作工具 - MRTK3
ObjectManipulator
可讓您以直覺方式作 3D 空間中具有任何輸入裝置或強制回應的物件。 它會執行與 XRI XRGrabInteractable
類似的工作,但提供其他功能和混合實境特有的互動。
XRGrabInteractable
雖然與我們的互動 (完全相容,反之亦然) ,但仍建議使用我們的實作來獲得最佳體驗。
注意事項
ObjectManipulator
專為直接且直覺地作 3D 對象而設計。 如果您要尋找常見的UI互動,例如滑桿或按鈕,請改為參閱我們的 滑桿 和 按鈕 文章。 避免使用 ObjectManipulator
來撰寫微互動。
架構
在 MRTK v2 中,大部分不同輸入類型的複雜邏輯和數學都由 ObjectManipulator
自己處理。 必須針對每種互動類型維護個別的程式代碼路徑,因此引進新類型的互動時,彈性會降低。 在 MRTK3 中, 互動器 會負責將特定類型的輸入轉譯成作的特定細節。 ObjectManipulator 只會接聽這些互動器,並將相關的轉換套用至物件。 因此, ObjectManipulator
MRTK3 的範圍明顯簡單且較小。 如需 互動器 如何透過其附加轉換進行通訊的說明,請參閱互動器架構。
n
-handed作
ObjectManipulator
支援任意數目的參與互動器,允許在一個、兩個甚至 n
手部作之間進行可一般化的互動行為。 一般而言,所有參與者 attachTransforms 的幾何中心會用於多手互動。 作為可互動的 XRI,它與任何提交行為良好附加轉換的互動器類型相容。
如果您要不允許多手作,請將 XRI Selection Mode
設定為 Single
。 我們會在偵測器中將這個屬性設為更具體的名稱 Multiselect Mode
,以避免與 MRTK Selection Mode
混淆,後者可用來指定是否可以切換可互動 (請參閱 按鈕 檔以進一步釐清。)
條件約束
ObjectManipulator
使用條件約束 API 來限制作。 如需詳細資訊,請參閱 條件約束檔 。
作邏輯插入
開發人員可以自定義 的 ObjectManipulator
作行為,而不需要子類別或修改腳本本身。 只要撰寫新的 ManipulationLogic<T>
,並使用 屬性在偵測器 ManipulationLogicTypes
中指定類型。
同樣地,開發人員可以撰寫 的新實 ITransformSmoothingLogic
作,並使用 屬性在 Inspector TransformSmoothingLogicType
中指定類型,來自定義平滑行為。