BoundsControl - MRTK3

界限控制項

BoundsControl 提供自動調整大小的周框方塊,以及旋轉和縮放的操作能供性。

在 MRTK 2.x 中,BoundsControl 主要是透過使用 Configuration ScriptableObjects 來產生執行時間。 在 MRTK3 中,BoundsControl 的設定和自訂已大幅簡化。 界限視覺效果和控制碼只是 BoundsControl 在執行時間具現化的可自訂預製專案。 開發人員可以調整和自訂視覺效果預製專案,或甚至從頭開始建置新的界限視覺效果。 我們提供標準界限視覺效果實作,遵循新的Mixed Reality設計語言。

新的視覺效果提供簡化的視覺回饋,可說明使用者對物件的意圖和操作,且幾乎不會干擾視覺雜訊。

安裝程式

只要將 BoundsControl 新增至現有的物件,並以您想要使用的界限視覺效果填 BoundsVisualsPrefab 入參考。 我們提供一些不同的預先建置界限視覺效果供您使用。

重要

我們強烈建議開發人員新增 MinMaxScaleConstraint ,以防止使用者將物件調整為未使用的小型或大型大小。

若要使用界限視覺效果的意圖和焦點效果,您必須在 StatefulInteractable 物件上擁有 。 如果未自動偵測到可互動,您可以在 BoundsControl 偵測器中指定連線。

注意

我們建議開發人員搭配 BoundsControl 使用 ObjectManipulator ,除了能供性型操作之外,還為使用者提供直接操作。 ObjectManipulator 可作為 StatefulInteractable 界限視覺效果回應之暫留/焦點狀態的 。

界限視覺效果預製專案

我們提供數個預先建置的界限視覺效果,以搭配 BoundsControl 使用。 鼓勵開發人員製作這些視覺效果的預製變數,並加以自訂以符合其需求。 控制碼動畫和狀態由 StateVisualizer 提供,可讓開發人員進一步自訂能供性的外觀和風格。

處理遮蔽樣式

這些界限視覺效果提供簡化的視覺效果設計,讓使用者較少干擾。 只有沿著界限邊緣的相關控點才會顯示。 界限視覺效果會根據使用者意圖和選取進度來合約、展開和變更色彩/粗細。 強烈建議使用此界限視覺效果樣式。

遮蔽控制碼

僅限意圖

在某些內容中,控制碼可能不想要,而開發人員可能會想要單獨使用界限視覺效果作為使用者意圖的一項令人感到快樂的指標。 雖然此預製專案會執行此作業,但透過選取 HandleType.None,即可使用任何其他界限視覺效果來達成相同的效果。 我們發現可分割的界限視覺效果是許多不同內容的滿足且令人滿意的視覺回饋元素,而不只是處理型操作。

沒有控制碼

舊版樣式

這些界限視覺效果會顯示方塊的所有控點和邊緣。 這更符合舊版設計語言和 MRTK 2.x 中所見的先前行為;不過,由於不必要的視覺雜訊,此設計可能會對使用者造成更大的干擾。 此外,物件前面有 (和後方的控制碼,) 可能會導致間接注視捏合操作發生問題。 不建議將此樣式用於新的應用程式,特別是利用注視目標的應用程式。

傳統控點

互動設計

在目前的反復專案中,我們提供簡單的啟用/停用互動。 藉由按一下就地 (,換句話說,選取物件,而不是移動物件,並將它放開,) 可以開啟和關閉控點。 此檢查的距離容錯可以使用 調整 DragToggleThreshold ,而且可以使用 屬性啟用/停用 ToggleHandlesOnClick 此啟用行為本身。

界限控制項切換

您可以透過設定 HandlesActive 來手動啟動或停用程式碼中的控制碼。

自動界限計算

BoundsControl 會嘗試自動計算相關聯物件的界限。 如果需要特定界限圖形,請檢查 OverrideBounds 選項並直接指定界限物件。 界限計算系統只會計算指定覆寫物件的界限。

會影響 BoundsCalculationMethod 演算法計算界限的方式。 如果封閉物件的視覺圖形不一定符合碰撞器,或者相反地,開發人員可以調整計算方法以偏好使用轉譯器或碰撞器界限,或兩者的組合。

不論計算方法為何, Padding 選項都會以世界單位統一填補界限。 當界限壓平時,扁平化座標軸不會填補。

壓平合併

扁平化界限Control

BoundsControl 也可用來操作 2D 內容。 如果 FlattenMode 設定為 Auto ,則如果物件在任何座標軸上都足夠平面,BoundsControl 會將本身扁平化為 2D 矩形界限。 如果物件不夠平平,但您仍想要矩形界限能供性, FlattenMode.Always 則一律會將 BoundsControl 沿著最簡單軸壓平。 相反地, FlattenMode.Never 即使物件非常精簡,也會防止 BoundsControl 壓平。

操作選項

BoundsControl 的操作行為可以透過數種方式進行調整。 RotateAnchor選項會控制使用旋轉能供性時,BoundsControl 繞著旋轉的樞紐點。 某些物件的樞紐點遠于其視覺中心,當使用旋轉控點操作時,可能會造成不適和不精確。 指定 BoundsCenterRotateAnchor 會導致 BoundsControl 一律繞著計算界限的幾何中心旋轉,而不是物件的實際原點。

調整行為可以設定為 UniformNon Uniform 。 在統一模式中,物件的所有軸都會一起縮放,維持外觀比例和外觀。 非統一縮放可讓物件的每個座標軸獨立縮放。