手部追蹤示例
Spaces 手部管理(lǐ)器
Spaces 手部管理(lǐ)器組件屬于 ARTrackableManager 類型,其編程方式類似于 AR Foundation 的其他(tā)管理(lǐ)器——通過提供回調函數來獲取添加、更新(xīn)和删除的項的變化。
該組件還提供了一個檢查器字段,用(yòng)于定義在檢測到手部時應生成的默認預制體(tǐ)。示例中(zhōng)的 Default Spaces Hand 預制體(tǐ)包含兩個額外的組件,如下圖所示。這些組件将在接下來的部分(fēn)中(zhōng)詳細描述。
Spaces 手部組件
該組件是獲取所有(yǒu)手部相關數據的通用(yòng)接口。它屬于 ARTrackable 類型,因此具(jù)有(yǒu)類似 TrackableID、TrackingState 和 Pose 等常見屬性,這些屬性由被追蹤手部的腕關節定義。
此外,它還提供了以下三個額外屬性:
● IsLeft: 布爾值。如果被追蹤的手是左手,則返回 true;否則返回 false。
● Joints: Qualcomm.Snapdragon.Spaces.SpacesHand.Joint 類型的數組,該類型具(jù)有(yǒu)以下屬性:
○ Pose: Unity Pose 類型,返回手部關節的姿态。
○ Type: Qualcomm.Snapdragon.Spaces.SpacesHand.JointType 類型,返回枚舉值,表示手部關節的類型。
● Gesture:Qualcomm.Snapdragon.Spaces.SpacesHand.Gesture 類型,具(jù)有(yǒu)以下屬性:
○ Type:Qualcomm.Snapdragon.Spaces.SpacesHand.GestureType 類型,返回枚舉值,表示檢測到的手勢。
○ GestureRatio: 介于 0 和 1 之間的浮點值,表示手勢的應用(yòng)程度。
○ FlipRatio: 介于 -1 和 1 之間的浮點值,表示手勢是從手的背面(-1)、正面(1)還是介于兩者之間檢測到的。
有(yǒu)關手勢的更多(duō)信息,請參見交互手勢文(wén)檔。
Spaces 手部關節可(kě)視化組件
該組件提供了一些屬性,用(yòng)于修改關節可(kě)視化的外觀,例如:
● JointMesh: 應用(yòng)于每個關節的網格。
● JointMaterial: 應用(yòng)于網格的材質(zhì)。
● JointMeshScale: 一個介于 0.005 和 0.05 之間的浮點值,定義了網格的縮放比例。
● UseNormalizedColors: 布爾值。如果設置為(wèi) true,則應用(yòng)的材質(zhì)的 _Color 屬性将由組件着色。
在示例中(zhōng),UnityEngine 中(zhōng)的簡單球體(tǐ)網格被設置為(wèi) JointMesh,而 Default-Material 被設置為(wèi) JointMaterial。