完成基本場景設置後,用(yòng)戶現在可(kě)以看到自己的手部,但還無法與周圍的虛拟環境進行交互。請按照下面的步驟完成手部追蹤交互的基本設置,以啓用(yòng)交互功能(néng)。
場景架構
可(kě)視化
在創建 XR Hand Tracking Manager 後,左右手區(qū)域會自動設置兩個預制件。這些預制件僅用(yòng)于手部可(kě)視化。
手部預制件遊戲對象包含 Hand Rigged Visualizer 和 Hand Driver 組件,這些組件負責可(kě)視化手部網格并更新(xīn)手部關節的變換,以适應 Skinned Mesh。
交互
QCHT 交互完全基于 XRIT 包。
交互配置文(wén)件
QCHTI 支持 Hand Interaction Profile 和 Microsoft Hand Interaction Profile。
如果未選擇交互配置文(wén)件或運行時不支持交互配置文(wén)件,QCHTI 将回退到自定義的手部追蹤輸入設備,并在輸入系統設備映射中(zhōng)注冊為(wèi) XR 控制器。
回退時可(kě)用(yòng)的控制包括:
Unity 控制名(míng)稱 | 類型 | 别名(míng) |
isTracked | Boolean | |
trackingState | Flag | |
devicePosition | Vector3 | |
deviceRotation | Quaternion | |
pokePosition | Vector3 | |
pokeRotation | Quaternion | |
pinchPosition | Vector3 | |
pinchRotation | Quaternion | |
graspPosition | Vector3 | |
graspRotation | Quaternion | |
pointerPosition | Vector3 | |
pointerRotation | Quaternion | select |
trigger | Float | selectPressed, triggerButton |
triggerPressed | Boolean | squeeze |
grip | Float | squeezePressed, gripButton |
控制器
要啓用(yòng)遠(yuǎn)端交互和近端交互等功能(néng),需要從頭開始添加自定義的 XRIT 手部控制器。
通過右鍵單擊場景中(zhōng)的層級視圖,選擇 QCHT > Hand Tracking Controllers,将 Hand Tracking Controllers 遊戲對象添加到場景中(zhōng)。
兩個手部追蹤控制器實例會自動作(zuò)為(wèi) XR Origin(或 AR Session)的子對象添加。
每個控制器包含 XR Ray Interactor、XR Poke Interactor 和兩個 XR Direct Interactor 組件,這些組件已進行預設配置。這些組件高度可(kě)配置,但這些控制器的輸入操作(zuò)映射未預設。
提示! 強烈建議使用(yòng) Core Assets,以獲取完整的預設 XR Rig 配置和默認的輸入操作(zuò)映射。 |
XR 手部控制器(已廢棄)
XR Hand Controller 組件是 XR Interaction Toolkit 包中(zhōng) XR Action Base Controller 的自定義實現。XR Hand Controller 負責處理(lǐ)來自 Unity 新(xīn)輸入系統的輸入操作(zuò),這些操作(zuò)直接映射到底層的手部追蹤子系統。這個自定義實現的 XR Action Base Controller 定義了額外的抓取操作(zuò)以及控制器的左右手屬性,這對于過濾交互非常有(yǒu)用(yòng)。
警告! 該組件已廢棄,因為(wèi)近端交互已被拆分(fēn)為(wèi)兩個直接交互器:一個用(yòng)于捏合交互,另一個用(yòng)于抓取交互。有(yǒu)關新(xīn)設置的詳細信息,請參閱 Core Assets XR Rig。 |