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