在沒有 MRTK 的情況下設定新的 OpenXR 專案
雖然 Microsoft 和社群已建立 開放原始碼 工具,例如 Mixed Reality 工具組 (MRTK) ,這會自動為您的混合實境設定環境,但有些開發人員可能想要從頭開始建置體驗。
其他要考慮的非 OpenXR 組態選項
Windows XR:Microsoft 不建議針對 Unity 2020 中的任何新專案使用 Windows XR 外掛程式。 相反地,您應該使用 Mixed Reality OpenXR 外掛程式。 不過,如果您使用 Unity 2019,而且您需要 AR Foundation 2.0 才能與 ARCore/ARKit 裝置相容,此外掛程式會啟用該支援。
重要
在 Unity 2019 中使用此外掛程式與 Azure Spatial Anchors 不相容。
舊版 XR:
如果您仍在 Unity 2019 或更早版本,Microsoft 建議使用舊版內建 XR 支援。 雖然 Windows XR 外掛程式在 Unity 2019 上運作,但我們不建議這麼做,因為它與 Unity 2019 上的 Azure Spatial Anchors 不相容。
如果您要啟動新的項目,建議您改為安裝 Unity 2020,並使用 Mixed Reality OpenXR 外掛程式。
開始使用 OpenXR:建立新的 Unity 專案
啟動 [Unity 中樞]。
在 [專案] 索引標籤中,按一下 [新增專案]。
按一下 [新增專案] 下的下拉式清單,然後選取您想要的編輯器版本。
確保所選擇的範本為「3D 核心」。
在 [專案名稱] 方塊中,輸入專案的名稱,例如 "MRTK Tutorial"。
在 [位置] 方塊中,按一下資料夾圖示,然後導覽至您要儲存專案的資料夾,並加以選取。 您也可以建立新資料夾。
按一下 [建立專案]。 這會在 Unity 中開啟您的專案。
警告
在 Windows 上作業時,MAX_PATH 的限制為 255 個字元。 Unity 會受到這些限制所影響,如果有任何檔案路徑的長度超過 255 個字元,可能就無法編譯。 因此,建議您盡可能將 Unity 專案儲存在盡可能接近磁碟機根目錄的位置。
設定您的組建目標
在功能表列上,選取 [檔案]>[建置設定...]。
若要建置 Windows Mixed Reality 的應用程式,您必須選擇建置目標。 通用 Windows 平台 (UWP 的組建設定) 以任何裝置為目標,包括 HP Reverb G2 之類的沉浸式頭戴裝置。 如果您要建置 HoloLens 2,這是最佳選擇;不過,如果您要以桌面 VR 為目標,建議您使用 PC、Mac & Linux 獨立平臺。
執行下列其中一個動作:
如果您是以桌面 VR 為目標:
- 保留 計算機、Mac & Linux 獨立 平台,預設會在新的 Unity 專案上選取:
如果您要將目標設為 HoloLens 2:
- 在 [平臺] 底下,選取 [通用 Windows 平台]。 確定下列設定為使用中:
建置類型:D3D 專案
目標 SDK 版本:安裝最新版本
最低平台版本:10.0.10240.0
Visual Studio 版本:安裝最新版本
按一下 [切換平台] 按鈕。 Unity 會在切換平台時顯示進度列。
切換平台程序完成之後,請關閉 [建置設定] 視窗。
下載並安裝 Mixed Reality 功能工具
Mixed Reality OpenXR 外掛程式的形式為 Unity 的套件。 探索、更新和匯入功能套件的最佳方式是使用 Mixed Reality Feature Tool。 您可以依名稱或類別搜尋套件、查看其相依性,甚至在匯入之前查看專案資訊清單檔的建議變更。
下載完成之後,流覽至可執行檔 MixedRealityFeatureTool.exe,然後使用它來啟動 Mixed Reality 功能工具。
匯入 Mixed Reality OpenXR 外掛程式
在 [Mixed Reality Feature Tool] 中,選取 [Start] \(啟動\)。
選取 [瀏覽] 按鈕 (它是下圖中的 [三點] 按鈕) ,然後流覽至包含 Unity 專案的資料夾,然後開啟它。
注意
工具中的 [Project Path] \(專案路徑\) 方塊必須包含一些值,因此預設會插入反斜線 ("_")。
選取資料夾之後,工具會檢查其是否為有效的 Unity 專案資料夾。
選取 [Discover Features] \(探索功能\)。
注意:當工具從摘要重新整理套件時,您可能需要等候幾秒鐘。
在 [Discover Features] \(探索功能\) 頁面上,請注意有六個套件群組的清單。
按一下 [Platform Support (0/5)] \(平台支援 (0/5)\) 左側的 "+" 按鈕,然後選取最新版本的 [Mixed Reality OpenXR Plugin] \(Mixed Reality OpenXR 外掛程式\)。
選取之後,按一下 [Get Features] \(取得功能\)。
選取 [Validate] \(驗證\) 以驗證您選取的套件。 您應該會看到一個對話方塊,指出 [No validation issues were detected] \(未偵測到任何驗證問題\)。 當您看到該對話方塊後,請按一下 [OK] \(確定\)。
在 [Import Features] \(匯入功能\) 頁面上,左側資料行 [Features] \(功能\) 會顯示您剛才選取的套件。 右側資料行 [Required dependencies] \(必要相依性\) 會顯示任何相依性。 您可以按一下這些項目的 [Details] \(詳細資料) 連結,以深入了解這些項目。
當您準備好繼續進行時,請選取 [Import] \(匯入\)。在 [Review and Approve] \(檢閱並核准\) 頁面上,您可以檢閱套件的相關資訊。
選取 [Approve] \(核准\)。
返回 Unity Editor,然後按一下 UI 中的空白區域。 您會看到進度列,顯示正在匯入套件。
設定輸入後端設定
在 Unity 匯入套件之後,會出現警告,詢問您是否要重新啟動編輯器來啟用後端。 選取 [是]。
透過項目驗證 (MR OpenXR 1.6+) 設定 HoloLens 2 專案
如果您要開發桌面 VR,請略過本節,並移至 設定桌面 VR 的專案。
- 在功能表列上,按兩下 [Mixed Reality 項目驗證設定>] > HoloLens 2 [應用程式 (UWP) ],以啟用 HoloLens 2 的驗證規則。 對於 1.9 版之前的 MR OpenXR 外掛程式,Mixed Reality > [專案>套用建議的項目設定] HoloLens 2。
- 在快顯的專案驗證視窗中,確定您位於 Windows 標誌) 所指出的 [UWP (平臺] 索引卷標上,然後按兩下 [ 修正所有 ] 來解決驗證問題。 請注意,按兩下 [ 全部修正] 之後,可能會仍有問題。 在此情況下,請嘗試再次按兩下 [ 全部修正 ],如果有任何) ,請忽略標示為「場景特定 (」的任何問題,並流覽其餘問題 (如果有任何) ,以查看您是否有任何建議的變更。
- 專案目前幾乎已準備好 HoloLens 2 部署。 繼續進行下一個步驟的 [ 設定播放機設定 ]。
手動設定 HoloLens 2 的專案
如果您要開發桌面 VR,請略過本節,並移至設定 桌面 VR 的專案。
請確定 [ 項目設定] 視窗已開啟。 如果沒有,請在功能表欄上,選取 [編輯>項目設定]。
在 [項目設定] 視窗中,確定您位於 [XR 外掛程式管理] 頁面,並在 [通用 Windows 平台] 索引標籤中。
確定已選取 [ 啟動時初始化 XR ],然後在 [ 外掛程式提供者] 下按兩下按 下 [OpenXR]。
OpenXR 外掛程式會載入,然後在 OpenXR下方顯示多個專案。 選取 [Microsoft HoloLens 功能群組]。
請注意, OpenXR 旁邊有黃色警告三角形。 這表示您有需要解析的不相容設定。 若要瞭解如何解決此問題,請略過下一節有關為VR進行設定,並繼續下一節解決 不相容的設定。
透過專案驗證設定桌面 VR 的專案 (MR OpenXR 1.9+)
- 在功能表列上,按兩下 [Mixed Reality > 項目驗證設定 > Win32 應用程式] ([獨立 ) ],以啟用桌面 XR 應用程式的驗證規則。
- 在快顯的專案驗證視窗中,確定您位於 [獨立平臺] 索引標籤上,然後按兩下 [ 全部修正 ] 以解決驗證問題。 請注意,按兩下 [ 全部修正] 之後,可能會仍有問題。 在此情況下,請嘗試再次按兩下 [ 全部修正 ]、忽略標示為「場景特定」 (的任何問題,如果有任何) ,請忽略其餘問題, () 是否有任何建議的變更可供查看。
手動設定桌面 VR 的專案
請確定 [ 項目設定] 視窗已開啟。 如果沒有,請移至功能表欄,選取 [編輯>項目設定]。
在 [ 項目設定 ] 視窗中,確定您位於 [XR 外掛程式管理 ] 頁面,並在 [ Mac] & [Linux 獨立 ] 索引卷標中。
確定已選取 [ 啟動時初始化 XR ],然後在 [ 外掛程式提供者] 下按兩下按 下 [OpenXR]。
OpenXR 外掛程式會載入,然後兩個項目會出現在 [OpenXR] 下方。 選取第一個,Windows Mixed Reality 功能群組。
請注意,[OpenXR] 旁邊現在有黃色警告三角形。 這表示您有需要解析的不相容設定。 若要瞭解如何解決此問題,請繼續進行下一節解決 不相容的設定。
解析不相容的設定
重要
本節中的影像會顯示 [通用 Windows 平台] 索引標籤中的選項。不過,除非另有說明,否則桌面 VR 索引標籤的指示相同。
將游標停留在 OpenXR 旁的黃色警告三角形上,然後在快顯中讀取訊息,然後選取三角形。
在 [OpenXR Project Validation] \(OpenXR 專案驗證\) 視窗中,列出數個問題。 選取 [Fix All] \(全部修正\) 按鈕。 注意:此列表可能會根據您所在的索引標籤而有所不同。
仍有一個問題,告知您至少必須新增一個互動設定檔。 若要這樣做,請按一下 [Edit] \(編輯\)。 這會帶您前往 [Project Settings] \(專案設定\) 視窗中 [OpenXR] 外掛程式的設定。
在 [Interaction Profiles] \(互動設定檔\) 下,留意加號 (+) 按鈕。
按三次按鈕,每次選擇不同的設定檔:
Eye Gaze Interaction Profile (眼球注視互動設定檔)
Microsoft Hand Interaction Profile (Microsoft 手部互動設定檔)
Microsoft Motion Controller Profile (Microsoft 動作控制器設定檔)
如果 [Eye Gaze Interaction Profile] \(眼球注視互動設定檔\) 或任何其他設定檔在出現時,旁邊有一個黃色三角形,請選取三角形,然後在 [OpenXR Project Validation] \(OpenXR 專案驗證\) 視窗中,按一下 [Fix] \(修正\) 按鈕。 完成時,請關閉 [OpenXR Project Validation] \(OpenXR 專案驗證\) 視窗。
在 [OpenXR Feature Groups] \(OpenXR 功能群組\) 下的 [Project Settings] \(專案設定\) 視窗中,確保已選取下列項目:
如果您是在 [桌面 VR] 索引標籤中:
Windows Mixed Reality
Hand Tracking (手部追蹤)
Motion Controller Model (動作控制器模型)
如果您是在 [通用 Windows 平台] 索引標籤中:
Microsoft HoloLens
Hand Tracking (手部追蹤)
Motion Controller Model (動作控制器模型)
按一下 [Depth Submission Mode] \(深度提交模式\) 下拉式清單,然後選取 [Depth 16 Bit] \(深度 16 位元\)。
提示
您可以選擇是否將 [Depth Format] \(深度格式\) 減少為 16 位元,但這麼做可改善專案中的圖形效能。 若要深入了解,請參閱深度緩衝區共用 (HoloLens)。
注意
位於 [Depth Submission Mode] \(深度提交模式\) 正上方的 [Render Mode] \(轉譯模式\) 設定,預設會設定為 [Single Pass Instanced] \(單一傳遞執行個體化\)。 在混合實境應用程式中,場景會轉譯兩次,也就是雙眼個別轉譯一次。 結果會產生「立體視覺」。這會將必要的運算量加倍,因此請務必在 Unity 中選取最有效率的轉譯路徑,以節省 CPU 和 GPU 時間。 單一傳遞執行個體化轉譯是這裡的最佳選擇,建議您針對每個專案預設予以啟用。 若要深入了解,請參閱 Unity 文件 (英文)。
設定播放機設定
在 [Project Settings] \(專案設定\) 視窗的左側資料行中,選取 [Player] \(玩家\)。
請注意,在 [ 播放程式 ] 視窗中,[ 產品名稱] 方塊已填入。 這會取自您的項目名稱,而且將會是 HoloLens [開始] 選單中顯示的名稱。
提示
若要在開發期間更容易找到應用程式,請在名稱前面加上底線,以將其排序到任何清單的頂端。
按兩下 [ 發佈設定 ] 下拉式清單,然後在 [ 套件名稱 ] 字段中輸入適當的名稱。
注意
套件名稱是應用程式的唯一識別碼。 如果您想要避免以相同名稱覆寫先前安裝的應用程式版本,則應該在部署應用程式之前變更此識別碼。
關閉 [Project Settings] \(專案設定\) 視窗。
您現在已準備好開始使用 Unity 中的 OpenXR 進行開發!
Unity 範例專案
請參閱 OpenXR Mixed Reality 範例存放庫,以取得範例 unity 專案,示範如何使用 Mixed Reality OpenXR 外掛程式建置適用於 HoloLens 2 或 Mixed Reality 頭戴式裝置的 Unity 應用程式。