共用方式為


Unity 中的世界鎖定和空間錨點

世界鎖定工具主圖影像

讓全像投影保持原位、與您一起移動,或在某些情況下,相對於其他全像投影本身的位置,是建立混合實境應用程式的一大部分。 本文將帶您完成使用世界鎖定工具的建議解決方案,但我們也會討論在 Unity 專案中手動設定空間錨點。 在我們跳入任何程序代碼之前,請務必瞭解 Unity 如何處理自己的引擎中的座標空間和錨點。

世界縮放座標系統

今天,在撰寫遊戲、數據視覺效果應用程式或虛擬實境應用程式時,典型的方法是建立一個絕對 世界座標系統 ,讓所有其他座標都能可靠地對應回去。 在該環境中,您隨時都能找到一個穩定轉換,以定義該世界中任何兩個對象之間的關聯性。 如果您未移動這些物件,其相對轉換一律會維持不變。 在轉譯純虛擬世界時,這種全域座標系統很容易正確,您事先知道所有幾何。 室內規模的 VR 應用程式今天通常會建立這種絕對房間規模的座標系統,其起源在地板上。

相反地,HoloLens 等未系結的混合實境裝置對世界有動態感測器驅動的瞭解,在使用者周圍的環境經過一段時間后持續調整其知識,因為他們在建築物的整個樓層走多米。 在世界規模的體驗中,如果您將所有全像投影放在天真的固定座標系統中,這些全像投影最終會隨著時間而漂移,無論是根據世界還是彼此相對。

例如,頭戴式裝置目前可能相信世界上的兩個位置相距4米,然後改進該理解,了解這些位置實際上相距3.9米。 如果這些全像投影最初被放置在單一剛性座標系統中,其中一個則總是與真實世界相距0.1公尺。

您可以在 Unity 中手動放置 空間錨點 ,以在用戶移動時維護全像投影在實體世界中的位置。 不過,這會犧牲虛擬世界中的自我一致性。 不同的錨點會不斷彼此移動,而且也會通過全域座標空間移動。 在此案例中,版面配置等簡單工作變得困難。 物理模擬也可能有問題。

世界鎖定工具 (WLT)可讓您充分利用這兩個世界,使用空間錨點的內部供應在使用者四處移動時,穩定單一剛性座標系統。 WLT 會分析相機的座標,以及每個畫面的空間錨點。 WLT 不會變更世界上所有專案的座標,以補償用戶頭部座標中的修正,而是改為修正頭部的座標。

選擇您的世界鎖定方法

可能的話,請使用 世界鎖定工具 進行全像投影定位。

世界鎖定工具 提供穩定的座標系統,可將虛擬和真實世界標記之間的可見不一致降到最低。 世界鎖定工具會使用共用錨點集區鎖定整個場景,而不是使用群組自己的個別錨點鎖定每個物件群組。

世界鎖定工具會自動處理空間錨點的內部建立和管理。 您不需要與 ARAnchorManager 或 WorldAnchor 互動,即可將您的全像投影世界鎖定。

  • 針對使用 OpenXR 或 Windows XR 外掛程式的 Unity 2019/2020,請使用 ARAnchorManager
  • 針對舊版 Unity 或 WSA 專案,請使用 WorldAnchor

設定世界鎖定

若要開始使用世界鎖定工具, 請下載混合實境功能工具。 若要深入瞭解基本概念,請參閱主要世界鎖定工具文件頁面,以取得概觀、快速入門和其他實用主題的連結。

自動化設定

當您的專案準備好進行時,請從 混合實境 > 世界鎖定工具執行設定場景公用程式:

已選取 [混合實境工具組] 功能表的 Unity 編輯器

重要

設定場景公用程式可以隨時重新執行。 例如,如果 AR 目標已從舊版變更為 XR SDK,則應該重新執行。 如果場景已正確設定,則執行公用程序沒有任何作用。

視覺化工具

在早期開發期間,新增可視化檢視有助於確保WLT已設定並正常運作。 您可以使用移除可視化檢視公用程式,移除生產效能,或基於任何原因不再需要移除它們。 如需可視化檢視的詳細資訊,請參閱 工具檔

持續性世界鎖定

空間錨點會在應用程式會話之間的真實世界空間中儲存全像投影。 儲存在 HoloLens 錨點存放區之後,就可以在不同的會話中找到空間錨點並載入,而且在沒有因特網連線時是理想的後援。

根據預設,世界鎖定工具會在支援本機空間錨點持續性的裝置上,還原 Unity 的座標系統相對於實體世界。 若要在結束並重新執行應用程式之後,將全像投影出現在實體世界中的相同位置,應用程式只需要將相同的姿勢還原至全像投影。

Unity 偵測器中的世界鎖定內容元件

如果應用程式需要更精細的控制,您可以在偵測器中停用 自動儲存自動載入 ,以及管理腳本中的持續性。 如需詳細資訊,請參閱 保存空間座標系統

世界鎖定工具僅支援 HoloLens 裝置上的本機錨點持續性。

下一步

共用世界鎖定的座標空間:

瞭解空間對應:

傳回 Unity 開發檢查點:

另請參閱