Share via


工具和可視化檢視

Microsoft.MixedReality.WorldLocking.Tools 命名空間中的工具和可視化檢視旨在協助開發期間。 它們也可能是與世界鎖定工具 (WLT) 系統進行進階直接互動的起點。

雖然它們不適合在應用程式內直接使用,但應用程式開發人員可以自由選擇這樣做。

WorldLocking.Core 旨在依原樣在任何適當的應用程式案例中運作。 不過,工具可能會假設應用程式。 在某些情況下,這些假設可能會使其不適當。

在直接在出貨應用程式中納入任何工具之前,請考慮建立針對您自己的需求和資源自定義的工具版本。

工具

調節器

調整器是處理 refit 事件的元件。 特別是,他們會建立 附件點。 在 refit 作業的情況下,AttachmentPoint 會做為通知回呼。 調整器會適當地處理該事件。

請參閱 AttachmentPoints進一步概念討論。

對 refit 事件的確切正確反應會因不同類型的物件而有所不同,而且非常特定應用程式。 例如,如果物件的 Fragment 目前處於非使用中狀態,則應該顯示物件嗎? 對於某些應用程式,由於無法判斷對象的適當位置,因此應該隱藏它。 對於其他應用程式,最好以暫時不正確的姿勢顯示物件,而不是遭受其消失的混淆。 即使是應該隱藏物件的應用程式,也有各種方式可以執行隱藏(例如,停用與遠離)。

AdjusterFixedAdjusterMoving 元件會以最少的方式處理兩個常見案例。

AdjusterFixed 元件假設其目標通常是非移動。 如果世界鎖定工具因為 refit 事件而傳送調整姿勢,則它的目的是要讓 AdjusterFixed 的物件保持在世界靜止狀態。

相反地,AdjusterMoving 元件假設其目標是透過 Unity 座標空間移動。 它保持世界鎖定工具系統評估其目標的位置,以便在重新整理作業時,系統可以提供最精確的更正,使目標的位置與當時的實體世界保持一致。

配接器

配接器元件僅供圖例使用。 如果您發現自己使用其中一個配接器,您應該重新思考您嘗試使用世界鎖定工具的方式。

特別是 MRTK 已經有內建配接器,因此應用程式不需要進一步的座標系統轉換。

有時候,特別是在未使用 MRTK 時,從原生資源轉換時,這會以海綿空間座標回報至凍結空間。 在這些情況下,應用程式開發人員可能會發現這裡所包含的其中一個配接器是很好的參考。

  • WorldAnchorAdapter - WorldAnchor 會調整物件在海綿空間中的姿勢,以在實體空間中保持固定。 這與世界鎖定工具所提供的世界鎖定空間多餘,因此物件會在凍結的空間中漂移。 此配接器可讓 WorldAnchor 維護凍結空間中對象的姿勢。 除了診斷之外,這是不必要的。 Unity 全域座標空間中的所有物件都由世界鎖定工具鎖定。

  • ToggleWorldAnchor - 類似於 WorldAnchorAdapter,但可以切換。 當 WorldLockingManager 停用時,也會自動轉換成一般 WorldAnchor 行為。 僅適用於診斷。

  • FrozenSpatialMapping - 配接器管理並正確轉譯 SurfaceObserver 的結果。 MRTK 空間感知系統提供此功能和更多功能,而且不需要任何適配卡才能使用世界鎖定工具。

  • FrozenTapToAdd - 直接與 Unity 的輸入系統互動需要轉換傳入座標數據,如下所示。 MRTK 的輸入系統不需要這樣做。

視覺化工具

錨點圖形視覺效果

AnchorGraphVisual 及其相關聯的預製專案是所提供視覺效果的核心。 元件片段如下所示:

  1. 軸 - 目前為海綿空間 (綠色) 和凍結空間 (藍色) 的原點擺姿勢會顯示為標準 3 箭號座標軸標識符。

  2. 海綿錨點 - 這些是已建立的原生基礎錨點,可饋送凍結的世界引擎優化。 每個都會以環形表示,以及識別它的文字標記。 此外,詳細資訊會透過色彩和大小來傳達。

    • 使用中的追蹤錨點會是綠色的。

    • 具有零相關性的追蹤錨點會是紅色。

    • 不支援的錨點會是黃色的。

    • 環形越大,該錨點的相關性就越大。

  3. 凍結錨點 - 這些是凍結空間中的對應參考點。 如果沒有追蹤器錯誤,這些將完全符合海綿錨點。

  4. 海綿凍結邊緣 - 這些連接海綿錨點與其對應的凍結錨點。 由於沒有追蹤器錯誤,因此這些是巧合的,看不到這些邊緣意味著一切都能完美運作。 在任何情況下,這些邊緣不應超過幾釐米。 他們在冰凍的末端是紅色的。 海綿端的色彩淡化為藍色。

  5. 錨點邊緣 - 這些細藍色灰色線條會顯示錨點圖形中 Spongy Anchors 之間的連線。

一般錨點圖形周遊會議室

啟用世界鎖定工具在用戶移動實體環境時所產生的錨點圖形顯示,只需要將 WorldLockingTools > Prefabs > AnchorGraphVisual 預製專案放入場景中。 它通常會新增為 WorldLockingContext 的同層級,但其在階層中的確切位置並不重要。 不過,它不應該放在相機階層中。

WLT 在內部建立及使用的空間錨點會在相機位置建立。 由於在眼睛層級走過錨點視覺效果的欄位令人不安,因此系統預設會從其真實位置向下顯示 1 公尺。 若要查看實際錨點位置的錨點視覺效果,請將Anchor Graph視覺效果元件的垂直位移參數設定為零。

其他輸出

世界 鎖定範例 包含文字診斷。 這些大部分只與世界鎖定工具的開發人員相關,而不是其能力的用戶端。 不過,它們可供讀取,如 StatusToText 腳本所示,可供實時顯示。

一般診斷顯示

為了進行驗屍分析,WorldLockingContext診斷區段在報告凍結世界引擎失敗方面非常有用。 如需詳細資訊,請參閱 報告 Bug