練習 - 使用 ObjectManipulator 新增手部互動

已完成

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

新增並調整第一個 Cube

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

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

    Cube 的預設大小是一立方米,這對我們的用途而言太大。 我們將縮小到20立方釐米的大小。

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

    X = 0.2、Y = 0.2、Z = 0.2

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

  3. 檢查器中,將轉換區段中 Cube 的 Position 值更改為以下值:

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

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

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

  4. 檢視器中,將 [轉換] 區段中 Cube 的 旋轉 值變更為以下數值:

    X = 9,Y = 14,Z = 0

    小提示

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

將指令碼新增至 Cube

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

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

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

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

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

更新 Cube 的材質

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

  1. 在 Cube 保持選取狀態時,找到並展開 Mesh Renderer 元件的材質區段。
  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] 的情況下,將其 Transform 元件中的值變更為以下數值:

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

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

    現在相機應該會看到左邊的近立方體和右邊稍遠一點的遠立方體。 若要確認這一點,請在 Hierarchy 中,選取 Main Camera(在 MRTK XR Rig 的>Camera Offset之下),然後在場景 視窗中查看 Main Camera 視窗。

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

    小提示

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

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

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

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

    備註

    在播放之前,請確認 [項目設定>] 底下已設定有效的配置檔

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

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

  3. 按住 空格鍵 ,讓仿真的右手出現在檢視中。

  4. 將仿真的手移近「近立方體」,直到它觸碰到立方體的側面或底部為止。

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

  5. 按兩下 滑鼠左鍵 (這會讓手部「抓取」立方體),然後將立方體拖曳到場景中。

    移動 Cube 的螢幕擷取畫面。

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

  6. 如果您需要,請再次按住 空格鍵 ,讓仿真的右手出現。 請注意從手部食指尾端延伸的遠指標。

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

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

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

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