將 VR 應用程式移植到 Windows Mixed Reality

Windows 10 包含沉浸式和全像攝影頭戴式裝置的支援。 其他裝置,例如 Hts Rift 或 SQL Vive,對於存在於操作系統平臺 API 上方的連結庫具有相依性。 若要將現有的 Win32 Unity VR 應用程式帶入 Windows Mixed Reality,您必須將廠商特定的 VR SDK 使用量複位為 Unity 的跨廠商 VR API 和外掛程式

將 VR 應用程式移植到 Windows Mixed Reality 需要下列高階程式:

  1. 請確定您的電腦執行 Windows 10 版本 1709 (Fall Creator 的 Update) 或更新版本,或 Windows 11
  2. 升級至最新版的圖形或遊戲引擎。 遊戲引擎必須支援 Windows 10 SDK 10.0.15063.0 版或更高版本。
  3. 升級中間件、外掛程式和元件。 如果您的應用程式包含任何元件,請升級至最新版本。
  4. 以最新的 Unity 版本和 OpenXR 外掛程式為目標。 拿掉重複 SDK 的相依性。 視您內容的目標裝置而定,移除或有條件地編譯該 SDK。
  5. 請完成應用程式、引擎和元件相依性專屬的建置問題。

常見的移植步驟

從下列常見移植步驟開始:

  1. 請確定您有正確的開發硬體。 VR愛好者指南會列出建議的開發硬體。

  2. 升級至最新的 Windows 10 正式發行前小眾測試版。

    1. 安裝 Windows 10 Creators Update
    2. 加入 Windows 測試人員計劃
    3. 啟用開發人員模式
    4. 透過 [設定更新] & [安全性] 區段,切換至 Windows 測試人員快速正式發行>前小眾測試版

    注意

    Windows Mixed Reality 平臺仍在使用中開發中。 加入 Windows 測試人員計劃以存取 Windows 測試人員快速正式發行前小眾測試版。 請勿從 Insider Skip Ahead 通道取得預覽組建,因為這些組建不是混合實境開發最穩定的組建。

  3. 如果您使用 Visual Studio,請升級至最新的組建。 請參閱在Visual Studio 2022下 安裝工具 。 請務必使用 Unity 工作負載安裝 遊戲開發

Unity 移植步驟

檢閱一般步驟,以確定您的開發環境已正確設定。 若要移植現有的 Unity 內容,請遵循下列步驟:

1.使用 Windows MR 支持升級至 Unity 的最新公開組建

  1. 開始之前,請先儲存項目的複本。
  2. 下載具有 Windows Mixed Reality 支援的最新建議 Unity 公用組建
  3. 如果您的專案是以舊版 Unity 為基礎建置,請檢閱 Unity 升級指南
  4. 請遵循使用 Unity 的自動 API 更新程式指示。
  5. 查看您是否需要進行任何其他變更,才能讓項目執行,並處理任何錯誤和警告。

2.將您的中間件升級至最新版本

使用任何 Unity 更新,您可能需要更新遊戲或應用程式相依的一或多個中間件套件。 更新至最新的中間件會增加在移植程序其餘部分成功的可能性。

3.將應用程式設為在 Win32 上執行的目標

從 Unity 應用程式內部:

  1. 流覽至 [檔案>建置設定]。
  2. 選取 [PC]、[Mac]、[Linux 獨立]。
  3. 將目標平台設定為 Windows
  4. 將架構設定為 x86
  5. 選取 [切換平臺]。

注意

如果您的應用程式對裝置特定服務具有任何相依性,例如從「串流」進行比對,請立即停用它們。 您稍後可以連結 Windows 對等服務。

4.新增 Mixed Reality OpenXR 外掛程式的支援

  1. 選擇並安裝 Unity 版本和 XR 外掛程式。 雖然具有 Mixed Reality OpenXR 外掛程式的 Unity 2020.3 LTS 最適合 Mixed Reality 開發,但您也可以使用其他 Unity 設定來建置應用程式。

  2. 拿掉或有條件地編譯另一個 VR SDK 專屬的任何連結庫支援。 這些資產可能會以與 Windows Mixed Reality 不相容的方式變更項目的設定和屬性。

    例如,如果您的項目參考了「VrVR SDK」,請更新您的專案,改為使用 Unity 的常見 VR API,其同時支援 Windows Mixed Reality 和 VrVR。

  3. 在您的 Unity 專案中,以 Windows 10 SDK 為目標

  4. 針對每個場景, 設定相機

5.設定您的 Windows Mixed Reality 硬體

  1. 檢閱 沈浸式頭戴式裝置設定中的步驟。
  2. 瞭解如何使用 Windows Mixed Reality 模擬器流覽 Windows Mixed Reality 首頁

6.使用階段將內容放在樓層

您可以跨各種體驗規模建置 Mixed Reality 體驗。 如果您要移植 基座調整體驗,請確定 Unity 已設定為 固定 追蹤空間類型:

XRDevice.SetTrackingSpaceType(TrackingSpaceType.Stationary);

此程式代碼會設定 Unity 的全球座標系統,以追蹤 固定的參考框架。 在固定追蹤模式中,您放在編輯器中的內容只會出現在相機的預設位置 (正向為 -Z) 在應用程式啟動時出現在使用者前面。 若要更新使用者的基座來源,您可以呼叫 Unity 的 XR。InputTracking.Recenter 方法。

如果您要移植 常設規模體驗會議室規模體驗,則會將內容放在相對於樓層。 您使用 空間階段來決定用戶樓層的原因,這代表使用者定義的樓層層級原點。 空間階段可以包含您在第一次執行期間設定的選擇性會議室界限。

針對這些體驗,請確定 Unity 已設定為 RoomScale 追蹤空間類型。 RoomScale 是預設值,但明確設定它,並確定您返回 true。 此做法會攔截用戶從他們校正的會議室移出計算機的情況。

if (XRDevice.SetTrackingSpaceType(TrackingSpaceType.RoomScale))
{
    // RoomScale mode was set successfully.  App can now assume that y=0 in Unity world coordinate represents the floor.
}
else
{
    // RoomScale mode was not set successfully.  App can't make assumptions about where the floor plane is.
}

一旦應用程式成功設定 RoomScale 追蹤空間類型,y=0 平面上放置的內容會出現在樓層上。 位於 (0、0、0) 的原點是使用者在會議室設定期間所在的樓層特定位置,而 -Z 代表他們在安裝期間所面臨的正向方向。

在文稿程式代碼中UnityEngine.Experimental.XR.Boundary,您可以接著在 類型上呼叫 TryGetGeometry 方法,以取得界限多邊形,並指定的TrackedArea界限類型。 如果使用者定義界限,您就會回到頂點清單。 然後,您可以將 會議室規模體驗 傳遞給使用者,讓他們可以在您建立的場景中進行逐步解說。

當使用者接近界限時,系統會自動轉譯界限。 您的應用程式不需要使用此多邊形來轉譯界限本身。

結果範例:

結果範例

如需詳細資訊,請參閱 Unity 中的座標系統

7.完成輸入模型

以現有前端掛接顯示器為目標的每個遊戲或應用程式, (HMD) 都有一組輸入,其會處理它所需的輸入類型,以及呼叫以取得這些輸入的特定 API。 利用 Windows Mixed Reality 中提供的輸入很簡單且簡單。

請參閱 Unity 的輸入移植指南,以取得 Windows Mixed Reality 公開輸入方式的詳細資訊,以及輸入如何對應至您的應用程式現在的功能。

重要

如果您使用 HP Reverb G2 控制器,請參閱 Unity 中的 HP Reverb G2 控制器 以取得進一步的輸入對應指示。

8.測試和調整效能

許多裝置都提供 Windows Mixed Reality,範圍從高階遊戲計算機到廣泛的市場主要計算機。 這些裝置有大幅不同的計算和圖形預算可供您的應用程式使用。

如果您使用具有大量計算和圖形預算的進階電腦移植應用程式,請務必在代表目標市場的硬體上測試並分析您的應用程式。 如需詳細資訊,請參閱 Windows Mixed Reality 最低計算機硬體相容性指導方針

UnityVisual Studio 都包含效能分析工具,以及 MicrosoftIntel 發佈效能分析與優化指導方針。

如需效能的廣泛討論,請參閱瞭解 Mixed Reality的效能。 如需 Unity 的特定詳細數據,請參閱 Unity 的效能建議

輸入對應

如需輸入對應資訊和指示,請參閱 Unity 的輸入移植指南

重要

如果您使用 HP Reverb G2 控制器,請參閱 Unity 中的 HP Reverb G2 控制器 以取得進一步的輸入對應指示。

另請參閱