練習 - 適用於 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 學習路徑中的步驟,但不包括將應用程式建置到您的裝置指示,其中包括下列步驟:

  1. 建立 Unity 專案,並為其提供適當的名稱,例如 Azure Cloud Tutorials
  2. 切換組建平台
  3. 匯入 TextMeshPro 基本資源
  4. 匯入混合實境工具組
  5. 設定 Unity 專案
  6. 建立及設定場景,並為場景提供適合的名稱,例如 AzureCloudServices

匯入教學課程資產

  1. AzurespatialAnchors SDK 新增至您的專案。 若要新增套件, 請遵循本教學課程

  2. 依照列出的順序下載並匯入下列 Unity 自定義套件

    匯入教學課程資產之後,您的 [專案] 視窗看起來應該如下所示:

    Screenshot of Unity Hierarchy, Scene, and Project windows after importing the tutorial assets.

準備場景

在本節中,您將藉由新增一些教學課程預製物件來準備場景。

  1. 在 [專案] 視窗中,瀏覽至 [資產]> [MRTK.Tutorials.AzureCloudServices]> [預製物件]> [管理員]。 按住 CTRL 鍵時,選取 SceneControllerRootMenuDataManager 以選取三個預製物件:

    Screenshot of Unity with SceneController, RootMenu, and DataManager prefabs selected.

    SceneController (預製物件) 包含兩個指令碼:SceneController (指令碼)UnityDispatcher (指令碼)SceneController 指令碼元件包含數個 UX 函式,並可協助相片擷取功能,而 UnityDispatcher 是允許 Unity 主執行緒執行動作的協助程式類別。

    RootMenu (預製物件) 是主要的 UI 預製物件,其中包含透過各種小型指令碼元件彼此連繫的所有 UI 視窗,並會控制應用程式的一般 UX 流程。

    DataManager (預製物件) 負責與 Azure 儲存體溝通,我們會在下一個教學課程中進一步說明。

  2. 現在,在仍然選取三個預製項目之後,將它們拖曳到 [階層] 視窗中,將它們新增至場景:

    Screenshot of Unity with newly added SceneController, RootMenu and DataManager prefabs still selected.

  3. 若要將焦點放在場景中的物件上,您可以按兩下 RootMenu 物件,然後再次將場景稍微縮小。 在仍選取 [RootMenu] 的情況下,將其 [轉換] 元件中的值變更為下列各項:

    位置:X = 0.0、Y = 1.6、Z = 0.6

    Screenshot of Unity with RootMenu object selected.

    提示

    如果您在場景中發現大型圖示會分散注意力(例如大型框架 'T' 圖示),您可以將 Gizmos 切換至關閉位置來隱藏它們

設定場景

在本節中,您會將 SceneManagerDataManagerRootMenu 連接在一起,讓下一個「整合 Azure 儲存體」教學課程具有工作場景。

連接物件

  1. 在 [階層] 視窗中,選取 [DataManager] 物件:

    Screenshot of Unity with DataManager object selected.

  2. 在 [偵測器] 視窗中,找出 DataManager (腳本) 元件。 您會在 On Data Manager Ready () 事件中看到空白位置。 將 SceneController 物件從 [階層] 視窗拖曳至 On Data Manager Ready () 事件。

    Screenshot of Unity with DataManager event listener added.

  3. 事件的下拉功能表現在為作用中。 選取下拉功能表,流覽至 SceneController,然後選取 子選單中的 Init () 選項。

    Screenshot of Unity with DataManager event action added.

  4. 從 [階層] 視窗中,選取 SceneController 物件。 您會 在 Inspector 中找到 SceneController (script) 元件。

    Screenshot of Unity with SceneController selected.

  5. 現在有數個未填入資料的欄位;讓我們變更此情況。 將階層中的 DataManager 物件移至「資料管理員」欄位,然後將階層中的 RootMenu>MainMenu GameObject 移至「主功能表」欄位。

    Screenshot of Unity with SceneController configured.

  6. 在 [階層] 視窗中,選取 MRTK XR Rig 物件。 確定已啟用 MRTK 語音子物件。 這可讓您開啟功能表,方法是說「開啟功能表」。

  7. 現在您的場景已準備好進行即將推出的教學課程。 別忘了將其儲存到您的專案中。

準備專案組建管線

注意

在 HoloLens 2 上建置和測試並非必要專案。 如果您沒有 HoloLens 裝置,可在 HoloLens 2 Emulator 上測試。 您可以在 HoloLens.com 購買裝置。

在完成場景之前,讓我們準備專案以建 置 HoloLens 2

1. 新增其他所需的功能

  1. 在 Unity 功能表中,選取 [編輯>專案 設定...] 以開啟 [專案 設定] 視窗。

    Screenshot of Unity open Project Settings.

  2. 在 [專案 設定] 視窗中,選取 [播放機],然後選取 [發佈 設定

    Screenshot of Unity Publishing Settings.

  3. 在 [發佈設定] 中,向下捲動至 [功能] 區段,然後再次確認您在教學課程開頭建立專案時所啟用的 InternetClientMicrophoneSpatialPerception 功能是否皆已啟用。 然後,啟用 InternetClientServerPrivateNetworkClientServerWebcam 功能:

    Screenshot of Unity Capabilities

2. 將應用程式部署至 HoloLens 2

您將無法在 Unity 編輯器內執行您將在本教學課程系列中使用的所有功能。 因此,您必須熟悉將應用程式部署至 HoloLens 2 裝置或模擬器。

提示

如需如何建置 Unity 專案並將其部署至 HoloLens 2 的提醒,您可以參閱 使用者入門教學課程 - 建置和部署應用程式 指示。

3. 在 HoloLens 2 上執行應用程式,並遵循應用程式內指示

警告

所有 Azure 服務都會使用網際網路,因此請確定您的裝置已連線至網際網路。

當應用程式在您的裝置上執行時,請授與下列所要求功能的存取權:

  • 麥克風
  • 相機

「自訂視覺」等服務需要這些功能才能正常運作。