練習 - 將手部互動指令碼新增至物件

已完成

ObjectManipulator 指令碼支援「手部和運動控制器」輸入模型的「直接操作」特徵。 當指令碼附加至物件時,使用者可以使用手部來移動、縮放或旋轉物件。 在此練習中,您將建立兩個 Cube,並將必要的指令碼附加至這些 Cube,然後將 Cube 四處移動。

新增並調整第一個 Cube

  1. 在功能表列中,選取 [GameObject] > [3D 物件] > [Cube]

    用於新增 Cube 的功能表命令螢幕擷取畫面。

    Cube 的預設大小是一平方公尺,這對於我們的用途而言太大。 我們會將大小縮減為 20x20x20 公分。

  2. 選取 Cube,然後在 [偵測器] 中,將 Cube 的 [轉換/縮放] 值變更為下列各項:

    X = 0.2、Y = 0.2、Z = 0.2

    將 Cube 放置在場景中的預設位置 (0,0,0)。 這表示 Cube 與使用者的頭戴式裝置位於相同的位置,而且使用者在向後移動之前,將無法看到 Cube。 我們將變更 Cube 的位置值,使其位於較佳的位置以供檢視。

  3. Inspector 中,將 Cube 的 [轉換/位置] 值變更為下列值:

    X = -0.2,Y = 1.6,Z = 0.5

    更新後的 Cube transform 元件螢幕擷取畫面。

    我們想要能夠看到立方體的三邊,因此也會變更立方體的旋轉。

    注意

    Cube 的高度設定為 1.6,以符合 MRTK XR Rig 上的 [相機位移] 高度,將其大致放在與視線等高的位置。

  4. 在 [偵測器] 中,將 Cube 的 [轉換/旋轉] 值變更為下列各項:

    X = 9、Y = 14、Z = 0 f

    提示

    若要放大 Cube,請選取 Cube,並確定游標停留在 [場景] 視窗上,然後按 F 鍵。 您可以透過這種方式放大任何物件。

將指令碼新增至 Cube

為了讓物件有追蹤的手部「可抓取」,必須對其附加兩個元件:

  • Collider 元件 (您在這裡不需要執行任何動作;Unity 的 Cube 預設已附加 Box Collider)
  • Object Manipulator (指令碼) 元件
  1. 在仍選取 Cube 的情況下,選取 [偵測器] 視窗中的 [新增元件] 按鈕,然後搜尋並選取 [物件操作工具] 指令碼。

    新增物件操作工具指令碼的螢幕擷取畫面。

    ObjectManipulator 指令碼會讓物件可以使用一或兩隻手移動、調整和旋轉。 當您新增物件操作工具指令碼時,也會自動新增條件約束管理員指令碼,因為物件操作工具指令碼對其具有相依性。

    新增至 Cube 的條件約束管理員指令碼螢幕擷取畫面。

更新 Cube 的材質

為了達到效能的目的,建議使用 MRTK 材質,而不是預設 Unity 材質。

  1. 在仍選取 Cube 之後,請在網格轉譯器元件上尋找 [材質] 區段。
  2. 將預設材質取代為位於 [MRTK 標準資產][材質] 底下的 MRTK_Standard_White 材質。 您可以將材質從 [專案] 窗格拖放到 [材質] 區段中。

新增第二個 Cube

  1. 在 [階層] 中,以滑鼠右鍵按一下 Cube,然後選取 [複製]。 隨即出現重複的 Cube,名稱為 Cube (1)

  2. 以滑鼠右鍵按一下原始 Cube,選取 [重新命名],然後將 Cube 命名為 Near Cube

  3. 以滑鼠右鍵按一下複製的 Cube,選取 [重新命名],然後將 Cube 命名為 Far Cube

    目前,看起來像是 [場景] 檢視中只有一個 Cube。 這是因為 Near Cube 和 Far Cube 位於相同的位置。 讓我們變更 Far Cube 的位置和旋轉。

  4. 在仍選取 [Far Cube] 的情況下,將其 [轉換] 元件中的值變更為下列各項:

    位置:X = 0.6, Y = 1.6, Z = 1.1

    旋轉:X = 27、Y = 0、Z = 0

    相機現在應該會在左側看到 Near Cube,而 Far Cube 在右側稍微遠一點的位置。 若要確認這一點,請在 [階層] 中選取 [主要相機] (在 [MRTK XR Rig][相機位移] 下方),然後在 [場景] 視窗中查看 [主要相機] 視窗。

    [場景] 視窗中 [主要相機] 檢視的螢幕擷取畫面。

    提示

    如果您想要讓 [場景] 視窗中的檢視看起來更像相機所看到的景象,請在 [場景] 視窗中來回捲動。 您可能必須將相機的 Clear Flags 設定為 Skybox (如果這不是預設值)。

在播放模式中抓取並移動 Cube

  1. 選取 [播放] 按鈕。 當專案開始播放時,檢視會切換至 [遊戲] 視窗。

    進入播放模式後的 [遊戲] 視窗螢幕擷取畫面。

    注意

    開始玩之前,請確認 [專案設定]>[MRTK3] 底下已設定有效的設定檔。

  2. 選取 [遊戲] 視窗右上角的 [三點] 按鈕,然後選取 [最大化]

    [遊戲] 視窗中 [最大化] 命令的螢幕擷取畫面。

  3. 空格鍵讓模擬的右手出現在檢視中。

  4. 將模擬的手往 Near Cube 移動,直到其觸碰立方體的側邊或底部為止。

    模擬右手觸碰 Near Cube 的螢幕擷取畫面。

  5. 按滑鼠左鍵 (這會讓手部「抓取」Cube),然後將 Cube 拖曳到場景周圍。

    移動 Cube 的螢幕擷取畫面。

    為了抓取並移動 Far Cube,我們將使用附加至模擬手部的遠指標。

  6. 您可以視需要再次按空格鍵,讓模擬的右手出現。 請注意從手部食指尾端延伸的遠指標。

    模擬手部遠指標的螢幕擷取畫面。

  7. 將手往 Far Cube 移動,直到您可以看到立方體上的指標尖端為止。 您可能需要在迴圈動作中來回移動手部數次,讓指標尖端出現在 Cube 上。

    觸碰 Cube 的遠指標螢幕擷取畫面。

  8. 按滑鼠左鍵 (這會關閉手部,並採用我們稱之為捏合手勢的動作),然後將 Cube 拖曳到場景周圍。

Unity 編輯器中的輸入模擬

您可以使用 Unity 編輯器內輸入模擬功能來測試全像攝影物件行為。

變更場景中的檢視

  • 若要將相機向前/向左/向後/向右移動,請按 W/A/S/D 鍵。
  • 若要垂直移動相機,請按 QE 鍵。
  • 若要旋轉相機,請按滑鼠右鍵,然後拖曳。

模擬手部輸入

  • 若要啟用模擬右手,請按住空格鍵。 若要移除手部,請放開空格鍵
  • 若要啟動模擬左手,請按住左 Shift 鍵。 若要移除手部,請放開左 Shift 鍵。
  • 若要在場景周圍移動任一隻手,請移動滑鼠。
  • 若要將手部向前或向後移動,請旋轉滑鼠滾輪。
  • 若要模擬捏合手勢,請按滑鼠左鍵。
  • 若要旋轉手部,請按住空格鍵 + CTRL 鍵 (右手) 或左 Shift 鍵 + CTRL 鍵 (左手),然後移動滑鼠。

持續啟用手部

若要啟用手部並將其保留在螢幕上,而不用繼續按住按鍵,請按 T (左手) 或按 Y (右手)。 若要移除手部,請再次按這些按鍵。

在 Unity 中建置您的應用程式

  1. 選取 [三點] 按鈕,然後取消核取 [最大化],將 [播放] 視窗最小化。

  2. 在功能表列中,選取 [檔案] > [建置設定...]

  3. [建置設定] 對話方塊中,選取 [新增開啟的場景] 按鈕,將您目前的場景新增至 [建置中的場景] 清單。

  4. 選取 [組建] 按鈕。

  5. [建置通用 Windows 平台] 視窗中,瀏覽至您要儲存建置的資料夾,或建立新的資料夾並瀏覽至該資料夾,然後選取 [取資料夾] 按鈕以啟動建置程序。

    可儲存建置的位置螢幕擷取畫面。

    隨即出現進度列,讓您知道建置進行的狀況。

(選用) 建置和部署應用程式

注意

建置和測試 HoloLens 2 並非必要項目。 或者,如果您沒有裝置,也可以在 HoloLens 2 Emulator 上進行測試。 您可以在 HoloLens.com 購買裝置。

  1. 當建置程序完成時,Windows 檔案總管隨即開啟,並顯示建置資料夾。 瀏覽該資料夾,按兩下解決方案的檔案即可在 Visual Studio 中開啟該檔案。

    顯示 builds 資料夾的檔案總管螢幕擷取畫面。

  2. 設定 Visual Studio 以便用於 HoloLens,請選取 [Master] 或 [Release] 設定,以及 [ARM64] 架構:

    具有專案建置選項的 Visual Studio 視窗螢幕擷取畫面。

    提示

    如果您部署至 HoloLens (第 1 代),則請選取 [x86] 架構。

    注意

    如果您在 Visual Studio 中未看到 [裝置] 顯示為目標選項,則可能需要將解決方案的啟始專案從 IL2CPP 專案變更為 UWP 專案。 在 [方案總管] 中,以滑鼠右鍵按一下 [您的專案名稱] (Universal Windows),然後選取 [設定為啟始專案]

    重要

    建置至您的裝置之前,裝置必須處於開發人員模式,並與開發電腦配對;請參閱啟用開發人員模式

  3. 選取部署目標下拉式功能表,然後執行下列其中一項動作:

    • 如果您要透過 Wi-Fi 進行建置及部署,請選取 [遠端電腦]

    將遠端電腦作為目標的 Visual Studio 視窗螢幕擷取畫面。

    • 如果您要透過 USB 進行建置及部署,請選取 [裝置]

    將裝置作為目標的 Visual Studio 視窗螢幕擷取畫面。

  4. 設定遠端連線:在功能表列上,選取 [專案和屬性]>。

  5. 在專案的 [屬性頁] 視窗中,選取 [設定屬性] > [偵錯]

  6. 選取 [要啟動的偵錯工具] 下拉式功能表,然後選取 [遠端電腦] (若尚未選取)。

    重要

    建議您手動輸入您的 IP 位址,而不要依賴「自動偵測」功能。 若要尋找您的 IP 位址,請在 HoloLens 上,移至 [設定] > [更新和安全性] > [適用於開發人員]。 IP 位址會列在 [乙太網路] 下的視窗底部。

  7. 在 [機器名稱] 欄位中,輸入裝置的 IP 位址。

    此螢幕擷取畫面顯示 Visual Studio 中的 [遠端連線] 對話方塊。

  8. 將 [驗證模式] 設定為 [通用 (未加密的通訊協定)]

  9. 將 HoloLens 連線至您的電腦,然後在 Visual Studio 中執行下列其中一項:

    • 若要部署至您的 HoloLens,然後在不連結 Visual Studio 偵錯工具的情況下自動啟動應用程式,請選取 [偵錯] > [啟動但不偵錯]
    • 若要在不自動啟動應用程式的情況下部署 HoloLens,請選取 [建置] > [部署解決方案]

    顯示 [啟動但不偵錯] 功能表項目的 Visual Studio 螢幕擷取畫面。

將裝置配對

第一次從 PC 將應用程式部署至 HoloLens 時,系統將會提示您輸入 PIN 碼。 若要建立 PIN 碼:

  1. 在 HoloLens 中,移至 [設定] > [更新和安全性] > [適用於開發人員]
  2. 選取 [配對]。這會顯示 HoloLens 中的 PIN 碼。
  3. 在 Visual Studio 的對話方塊中輸入 PIN 碼。
  4. 在配對完成後,選取 HoloLens 中的 [完成]

您的電腦現在已與 HoloLens 配對,您可以自動部署應用程式。 針對用來將應用程式部署至 HoloLens 的每個 PC,重複這些步驟。

在 HoloLens 上執行您的應用程式

  1. 在應用程式完成建置之後,請在 HoloLens 的 [開始] 功能表中,尋找應用程式的應用程式圖格,然後加以選取。

  2. 應用程式啟動之後,請觸達 Near Cube,然後將其抓取並拖曳。

  3. 使用遠指標來抓取 Far Cube,然後加以拖曳。

    提示

    HoloLens 能讓您比在 Unity 中測試應用程式時獲得更多彈性。 您可以實際四處移動並使用 Near Cube 上的遠指標,或使用手部觸達並抓取 Far Cube!

提示

  • 您也可以部署至 HoloLens Emulator,或建立應用程式套件以進行側載。

  • 您可能會注意到應用程式中的診斷分析工具。 您可以使用「切換診斷」語音命令將其開啟或關閉。 建議您在開發期間儘量讓分析工具保持可見,以了解應用程式的變更如何對效能產生影響。 例如,您可以監視您的應用程式,以確保畫面播放速率至少為 60 FPS