Mitsuba 2场景文件格式详解:XML描述语言的完整使用手册
2026/5/2 3:23:02
Snapdragon Spaces 手部跟踪(Hand Tracking)支持实时跟踪 26 个手关节位置、姿态识别(如捏合 PINCH、抓握 GRAB)和手势交互。核心 API 来自Qualcomm.Snapdragon.Spaces命名空间,包括SpacesHandManager、SpacesHand和SpacesHand.Joint。
QCHT(Qualcomm Compute Hand Tracking)是高级交互层(基于 Unity XR Interaction Toolkit),用于可视化和交互,但底层数据访问类似。推荐导入QCHT Unity Interactions包(从 Snapdragon Spaces Developer Portal 下载 SDK 内含)。
导入 SDK:
场景配置:
Editor 模拟:
构建部署:
handsChanged触发更新。trackingState:TrackingState(None/Tracking)。Joints[]:26 个关节(JointType: PALM, WRIST, THUMB_METACARPAL, INDEX_PROXIMAL 等)。CurrentGesture.Type:GestureType(PINCH, GRAB 等)。XRHandTrackingSubsystem.GetSubsystemInManager()获取子系统状态(Idle/Running/Error)。以下是一个完整自包含示例:可视化手部骨骼(使用 LineRenderer 连接关节)、检测捏合手势、抓取 3D 对象(Cube)。附加到 XR Origin 的空 GameObject 上。
创建预制体:
usingSystem.Collections.Generic;usingUnityEngine;usingQualcomm.Snapdragon.Spaces;// 导入 Spaces APIusingUnityEngine.XR.ARSubsystems;// 用于 TrackingStatepublicclassHandTrackingManager:MonoBehaviour{[Header("Prefabs")]publicGameObjectjointPrefab;// 关节可视化预制体publicMaterialleftHandMaterial;// 左手材质(蓝色)publicMaterialrightHandMaterial;// 右手材质(红色)[Header("Interaction")]publicGameObjectgrabTarget;// 要抓取的 CubeprivateSpacesHandManagerhandManager;privateDictionary<SpacesHand,List<GameObject>>jointVisualizers=new();// 关节可视化对象privateLineRendererboneRenderer;// 骨骼线渲染器privateboolisGrabbing=false;voidStart()