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