練習 - 適用於 HoloLens 2 的 Azure 雲端服務
在每個連續章節中,您將新增 Azure 雲端服務以擴充應用程式功能和使用者體驗,同時教授每個 Azure 雲端服務的基礎概念。
注意
本課程模組系列將著重於 HoloLens 2,但由於 Unity 的跨平台本質,其中大部分課程也適用於桌面和行動應用程式。
應用程式目標
在本課程模組系列中,您將建置一個 HoloLens 2 應用程式,以偵測影像中的物件並尋找其空間位置。 我們會將這些物件稱為追蹤物件。
使用者可以建立追蹤物件,透過電腦視覺、空間位置或兩者將一組影像加以關聯。 所有資料都必須保存至雲端。
功能
- 資料與影像的基本管理
- 影像訓練與偵測
- 將空間位置與指引儲存至其中
Azure 雲端服務
您將使用下列 Azure 雲端服務實作上述功能:
Azure 儲存體
您將使用 Azure 儲存體 來保存資料。 Azure 儲存體可讓您將資料儲存在資料表中,並上傳大型二進位檔案,例如影像。
Azure 自訂視覺
透過 Azure AI 自訂視覺(Azure AI 服務的一部分),您可以將一組影像與追蹤的物件產生關聯、在您建立的集合上定型機器學習模型,以及偵測追蹤的物件。
Azure 空間錨點
若要儲存追蹤的物件位置,並提供引導式指示來尋找它,您將使用 Azure Spatial Anchors。
建立並準備 Unity 專案
在本節中,您將建立新的 Unity 專案,並準備好進行 MRTK 開發。
首先,請遵循 HoloLens 2 學習路徑中的步驟,但不包括將應用程式建置到您的裝置指示,其中包括下列步驟:
- 建立 Unity 專案,並為其提供適當的名稱,例如 Azure Cloud Tutorials
- 切換組建平台
- 匯入 TextMeshPro 基本資源
- 匯入混合實境工具組
- 設定 Unity 專案
- 建立及設定場景,並為場景提供適合的名稱,例如 AzureCloudServices
匯入教學課程資產
將
AzurespatialAnchors
SDK 新增至您的專案。 若要新增套件, 請遵循本教學課程。依照列出的順序下載並匯入下列 Unity 自定義套件:
匯入教學課程資產之後,您的 [專案] 視窗看起來應該如下所示:
準備場景
在本節中,您將藉由新增一些教學課程預製物件來準備場景。
在 [專案] 視窗中,瀏覽至 [資產] > [MRTK.Tutorials.AzureCloudServices] > [預製物件] > [管理員]。 按住 CTRL 鍵時,選取 SceneController、RootMenu 和 DataManager 以選取三個預製物件:
SceneController (預製物件) 包含兩個指令碼:SceneController (指令碼) 與 UnityDispatcher (指令碼)。 SceneController 指令碼元件包含數個 UX 函式,並可協助相片擷取功能,而 UnityDispatcher 是允許 Unity 主執行緒執行動作的協助程式類別。
RootMenu (預製物件) 是主要的 UI 預製物件,其中包含透過各種小型指令碼元件彼此連繫的所有 UI 視窗,並會控制應用程式的一般 UX 流程。
DataManager (預製物件) 負責與 Azure 儲存體溝通,我們會在下一個教學課程中進一步說明。
現在,在仍然選取三個預製項目之後,將它們拖曳到 [階層] 視窗中,將它們新增至場景:
若要將焦點放在場景中的物件上,您可以按兩下 RootMenu 物件,然後再次將場景稍微縮小。 在仍選取 [RootMenu] 的情況下,將其 [轉換] 元件中的值變更為下列各項:
位置:X = 0.0、Y = 1.6、Z = 0.6
提示
如果您在場景中發現大型圖示會分散注意力(例如大型框架 'T' 圖示),您可以將 Gizmos 切換至關閉位置來隱藏它們。
設定場景
在本節中,您會將 SceneManager、DataManager 和 RootMenu 連接在一起,讓下一個「整合 Azure 儲存體」教學課程具有工作場景。
連接物件
在 [階層] 視窗中,選取 [DataManager] 物件:
在 [偵測器] 視窗中,找出 DataManager (腳本) 元件。 您會在 On Data Manager Ready () 事件中看到空白位置。 將 SceneController 物件從 [階層] 視窗拖曳至 On Data Manager Ready () 事件。
事件的下拉功能表現在為作用中。 選取下拉功能表,流覽至 SceneController,然後選取 子選單中的 Init () 選項。
從 [階層] 視窗中,選取 SceneController 物件。 您會 在 Inspector 中找到 SceneController (script) 元件。
現在有數個未填入資料的欄位;讓我們變更此情況。 將階層中的 DataManager 物件移至「資料管理員」欄位,然後將階層中的 RootMenu>MainMenu GameObject 移至「主功能表」欄位。
在 [階層] 視窗中,選取 MRTK XR Rig 物件。 確定已啟用 MRTK 語音子物件。 這可讓您開啟功能表,方法是說「開啟功能表」。
現在您的場景已準備好進行即將推出的教學課程。 別忘了將其儲存到您的專案中。
準備專案組建管線
注意
在 HoloLens 2 上建置和測試並非必要專案。 如果您沒有 HoloLens 裝置,可在 HoloLens 2 Emulator 上測試。 您可以在 HoloLens.com 購買裝置。
在完成場景之前,讓我們準備專案以建 置 HoloLens 2。
1. 新增其他所需的功能
在 Unity 功能表中,選取 [編輯>專案 設定...] 以開啟 [專案 設定] 視窗。
在 [專案 設定] 視窗中,選取 [播放機],然後選取 [發佈 設定:
在 [發佈設定] 中,向下捲動至 [功能] 區段,然後再次確認您在教學課程開頭建立專案時所啟用的 InternetClient、Microphone 和 SpatialPerception 功能是否皆已啟用。 然後,啟用 InternetClientServer、PrivateNetworkClientServer 與 Webcam 功能:
2. 將應用程式部署至 HoloLens 2
您將無法在 Unity 編輯器內執行您將在本教學課程系列中使用的所有功能。 因此,您必須熟悉將應用程式部署至 HoloLens 2 裝置或模擬器。
提示
如需如何建置 Unity 專案並將其部署至 HoloLens 2 的提醒,您可以參閱 使用者入門教學課程 - 建置和部署應用程式 指示。
3. 在 HoloLens 2 上執行應用程式,並遵循應用程式內指示
警告
所有 Azure 服務都會使用網際網路,因此請確定您的裝置已連線至網際網路。
當應用程式在您的裝置上執行時,請授與下列所要求功能的存取權:
- 麥克風
- 相機
「自訂視覺」等服務需要這些功能才能正常運作。