news 2026/4/16 11:56:06

高通6490之Snapdragon Spaces Unity 手部跟踪详细示例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
高通6490之Snapdragon Spaces Unity 手部跟踪详细示例

Snapdragon Spaces Unity 手部跟踪详细示例

Snapdragon Spaces 手部跟踪(Hand Tracking)支持实时跟踪 26 个手关节位置、姿态识别(如捏合 PINCH、抓握 GRAB)和手势交互。核心 API 来自Qualcomm.Snapdragon.Spaces命名空间,包括SpacesHandManagerSpacesHandSpacesHand.Joint

QCHT(Qualcomm Compute Hand Tracking)是高级交互层(基于 Unity XR Interaction Toolkit),用于可视化和交互,但底层数据访问类似。推荐导入QCHT Unity Interactions包(从 Snapdragon Spaces Developer Portal 下载 SDK 内含)。

1. 先决条件与场景设置
  1. 导入 SDK

    • 下载最新 Snapdragon Spaces Unity Package(.tgz),通过 Package Manager > Add package from tarball 导入。
    • 导入QCHT Unity Interactions(样本包)和Core Samples
    • 启用 OpenXR:Project Settings > XR Plug-in Management > Android > OpenXR,选择Hand Tracking功能组。
  2. 场景配置

    • 创建XR Origin(右键 Hierarchy > XR > Room-Scale XR Origin)。
    • 添加XR Hand Tracking Manager到 XR Origin(右键 > QCHT > Hand Tracking Manager),或通过代码实例化。
    • 添加SpacesHandManager(用于低级 API访问)。
    • 为左右手添加SpacesHand组件(或通过 Manager 自动)。
    • Player Settings:Android > ARM64 > IL2CPP > Minimum API 29+。
  3. Editor 模拟

    • Project Settings > XR Plug-in Management启用Hand Tracking SimulationXR Interaction Toolkit Device Simulator
    • Play 时,按Tab切换焦点(头/左手/右手)模拟手部。
  4. 构建部署

    • 添加场景到 Build Settings,Build and Run 到支持设备(如 Snapdragon XR2 头显)。
2. 核心 API 概述
  • SpacesHandManager:管理双手,事件handsChanged触发更新。
  • SpacesHand:单手数据,包括:
    • trackingState:TrackingState(None/Tracking)。
    • Joints[]:26 个关节(JointType: PALM, WRIST, THUMB_METACARPAL, INDEX_PROXIMAL 等)。
    • CurrentGesture.Type:GestureType(PINCH, GRAB 等)。
  • QCHT 扩展XRHandTrackingSubsystem.GetSubsystemInManager()获取子系统状态(Idle/Running/Error)。
3. 详细代码示例

以下是一个完整自包含示例:可视化手部骨骼(使用 LineRenderer 连接关节)、检测捏合手势、抓取 3D 对象(Cube)。附加到 XR Origin 的空 GameObject 上。

创建预制体:

  • JointPrefab:小球(Sphere),Scale (0.01,0.01,0.01),添加 Rigidbody/Collider 用于交互。
  • Cube:可抓取对象,添加 Rigidbody。
3.1 主管理脚本:HandTrackingManager.cs
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()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 0:55:54

那个在DG数据库中将多行指定字段的文本替换操作

将java实践作业\imgs\headIco\全部替换为/upload/avatar/&#xff0c;怎么多行操作sql语句UPDATE 表名 SET 你的字段名 REPLACE(你的字段名, 被替换者字符串, 替换者字符串)UPDATE rolemestable SET HeadSrc REPLACE(HeadSrc, java实践作业\\imgs\\headIco\\, /upload/avatar…

作者头像 李华
网站建设 2026/4/1 0:03:03

基于深度学习的智慧识花系统的设计与实现(源码+万字报告+讲解)(支持资料、图片参考_相关定制)

摘要 深度学习作为机器学习的一个重要分支&#xff0c;经过十多年的研究和发展&#xff0c;在计算机视觉分类、定位、检测和分割方面取得了良好的效果。花卉图像是一种典型的细粒度图像&#xff0c;具有许多复杂的特征&#xff0c;难以区分和识别。使用传统的方法识别花朵图像既…

作者头像 李华
网站建设 2026/4/14 16:18:28

Thinkphp和Laravel框架的精诺企业数字化精益制造生产系统_i36pxop6

目录ThinkPHP与Laravel框架在精诺企业数字化精益制造系统中的应用ThinkPHP框架的应用特点Laravel框架的技术优势系统核心功能与价值项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理ThinkPHP与Laravel框架在精诺企业数字化精益制造系统中的应用 精…

作者头像 李华
网站建设 2026/4/14 0:26:23

医疗OCR用Tesseract稳缩写识别

&#x1f4dd; 博客主页&#xff1a;jaxzheng的CSDN主页 医疗OCR中Tesseract的稳定缩写识别&#xff1a;技术挑战与创新实践目录医疗OCR中Tesseract的稳定缩写识别&#xff1a;技术挑战与创新实践 引言&#xff1a;当缩写成为医疗数据的“隐形障碍” 一、医疗OCR缩写识别&#…

作者头像 李华
网站建设 2026/4/10 23:23:20

专科生必看!8个降AI率工具,高效避坑指南

专科生必看&#xff01;8个降AI率工具&#xff0c;高效避坑指南 AI降重工具&#xff1a;高效避坑的必备利器 随着人工智能技术的快速发展&#xff0c;越来越多的专科生在撰写论文时开始使用AI工具进行辅助。然而&#xff0c;AI生成的内容往往存在明显的“AI痕迹”&#xff0c;不…

作者头像 李华
网站建设 2026/4/15 3:17:03

Linux用户、组创建

#创建指定组ID的xixi组 groupadd -g 3001 xixi#创建指定用户ID的ADMIN用户&#xff0c;并加入进xixi组 useradd -u 3001 -G xixi ADMIN #创建指定用户ID的APP用户&#xff0c;并加入进xixi组 useradd -u 3002 -G xixi APP#设置两用户密码永不过期 chage -M 99999 ADMIN chage -…

作者头像 李华