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