練習 - 使用 ObjectManipulator 新增手部互動
ObjectManipulator 腳本支援 手部和運動控制器輸入模型的直接操作 方式。 當文稿附加至物件時,使用者可以用手移動、縮放或旋轉物件。 在此練習中,您將建立兩個 Cube,並將必要的指令碼附加至這些 Cube,然後將 Cube 四處移動。
新增並調整第一個 Cube
在功能表列中,選取 [GameObject] > [3D 物件] > [Cube]。
Cube 的預設大小是一立方米,這對我們的用途而言太大。 我們將縮小到20立方釐米的大小。
選取 Cube,然後在 [偵測器] 中,將 [轉換] 區段中的 Cube Scale 值變更為下列專案:
X = 0.2、Y = 0.2、Z = 0.2
將 Cube 放置在場景中的預設位置 (0,0,0)。 這表示 Cube 與使用者的頭戴式裝置位於相同的位置,而且使用者在向後移動之前,將無法看到 Cube。 我們將變更 Cube 的位置值,使其位於較佳的位置以供檢視。
在偵測器中,將 [轉換] 區段中 Cube 的 Position 值變更為下列專案:
X = -0.2, Y = 1.6, Z = 0.5
我們想要能夠看到立方體的三邊,因此也會變更立方體的旋轉。
在偵測器中,將 [轉換] 區段中 Cube 的 Rotation 值變更為下列專案:
X = 9、Y = 14、Z = 0
提示
若要放大 Cube,請選取它,確定游標停留在場景視窗上方,然後按 F 鍵。 您可以透過這種方式放大任何物件。
將指令碼新增至 Cube
為了讓物件有追蹤的手部「可抓取」,必須對其附加三個元件:
- 碰撞器元件 (您不需要在這裡執行任何動作;Unity 的 Cube 預設已附加 Box Collider)
- 物件操作工具 (文稿) 元件
- 條件約束管理員 (文稿) 元件
在仍選取 Cube 的情況下,選取 [偵測器] 視窗中的 [新增元件] 按鈕,然後搜尋並選取 [物件操作工具] 指令碼。
物件操作工具文本會使用一或兩隻手讓對象可移動、可調整及旋轉。 當您新增物件操作工具指令碼時,也會自動新增條件約束管理員指令碼,因為物件操作工具指令碼對其具有相依性。
更新 Cube 的材質
為了達到效能目的,我們建議使用 MRTK 材質,而不是預設的 Unity 材質。
- 在仍選取 Cube 之後,尋找並展開 Mesh 轉譯器元件上的 [材質 ] 區段。
- 將預設材質取代為位於 [MRTK 標準資產]>[材質] 底下的 MRTK_Standard_White 材質。 您可以將材質直接拖曳至 [材質] 區段中的 [元素] 欄位,以執行此動作
新增第二個 Cube
在 [階層] 中,以滑鼠右鍵按兩下 Cube,然後選取 [複製]。 重複的 Cube 隨即出現,名稱為 Cube (1)。
以滑鼠右鍵按下原始 Cube,選取 [重新命名],然後將 Cube 命名為 [接近 Cube]。
以滑鼠右鍵按鍵按鍵按鍵按鍵的 Cube,選取 [重新命名],然後將 Cube 命名為 Far Cube。
目前,看起來像是 [場景] 檢視中只有一個 Cube。 這是因為 Near Cube 和 Far Cube 位於相同的位置。 讓我們變更 Far Cube 的位置和旋轉。
在仍選取 [Far Cube] 的情況下,將其 [轉換] 元件中的值變更為下列各項:
位置:X = 0.6、Y = 1.6、Z = 1.1
旋轉:X = 27、Y = 0、Z = 0
現在相機應該會看到左邊的近立方體,而遠方在右邊稍遠一點。 若要確認這一點,請在 [階層] 中選取 [主要 相機 [MRTK XR Rig> 相機 Offset],然後查看 [場景] 視窗中的 [主要 相機] 視窗。
提示
如果您想要讓 [場景] 視窗中的檢視看起來更像相機所看到的景象,請在 [場景] 視窗中來回捲動。 如果您不是預設,您可能必須將相機的 Clear Flags 設定為 Skybox 。
在播放模式中抓取並移動 Cube
選取 [ 播放] 按鈕。 當專案開始播放時,檢視會切換至 [遊戲] 視窗。
注意
在播放之前,請確認 Project 設定> MRTK3 底下有有效的配置檔集。
選取遊戲視窗右上角的三點按鈕,然後選取 [最大化]。
按住空格鍵,讓仿真的右手出現在檢視中。
將仿真的手移到接近 Cube,直到它觸碰側或底部的立方體為止。
按兩下滑鼠左鍵(這會讓手部「抓取」立方體),然後將立方體拖曳到場景中。
為了抓取並移動 Far Cube,我們將使用附加至模擬手部的遠指標。
如果您需要,請再次按住 空格鍵 ,讓仿真的右手出現。 請注意從手部食指尾端延伸的遠指標。
將手往 Far Cube 移動,直到您可以看到立方體上的指標尖端為止。 您可能需要在迴圈動作中移動手部數次,讓指標的尖出現在 Cube 上。
按兩下滑鼠左鍵(這會關閉手部,採取我們所謂的「捏合手勢」),然後將立方體拖曳到場景中。