共用方式為


物件作工具 - 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 中指定類型,來自定義平滑行為。

重要事項

如果您發現自己為新類型的互動或輸入設備撰寫新的作邏輯類型,您可能會遇到錯誤的路徑。 現有的作邏輯應該適用於任意輸入類型,只要附加轉換行為良好。 請考慮改為調整或撰寫新的互動器。 如需如何撰寫行為良好的互動邏輯的詳細資訊,請參閱 互動器架構檔可互動架構檔