Unity AR Foundation人体追踪是否支持多人体追踪?
Unity AR Foundation 多人体追踪支持说明
核心结论
Unity AR Foundation支持多人体追踪,但需满足平台、版本及配置要求,且需使用正确的API获取多人体数据。
关键细节说明
支持前提
- 硬件:搭载A12及以上处理器的iOS设备(依赖ARKit 3.0+的多人体追踪能力,AR Foundation封装了ARKit的底层功能)
- AR Foundation版本:需使用5.0及以上版本(需手动编辑
Packages/manifest.json指定版本) - 配置:AR Session配置中需开启人体追踪,并在
ARHumanBodyManager组件上勾选对应追踪模式(2D/3D)
获取多人体2D关节数据的正确方式
你使用的无参方法var joints = m_HumanBodyManager.GetHumanBodyPose2DJoints(Allocator.Temp);仅返回第一个检测到的人体的2D关节数据。要获取多人体数据,需遍历ARHumanBodyManager.trackables集合,对每个ARHumanBody实例调用带参数的重载方法:foreach (var humanBody in m_HumanBodyManager.trackables) { var joints = m_HumanBodyManager.GetHumanBodyPose2DJoints(humanBody, Allocator.Temp); // 处理当前人体的2D关节数据 }humanBodiesChanged事件未触发的可能原因- 未开启正确的追踪配置:检查AR Session配置和
ARHumanBodyManager的追踪模式是否勾选 - 场景中未检测到多人体:确保测试时有多个人体出现在相机视野内
- 事件订阅时机错误:需在组件初始化阶段(如
Awake或Start方法)订阅事件,确保ARHumanBodyManager已完成初始化 - 权限问题:iOS设备需授予相机权限,否则无法进行人体检测
- 未开启正确的追踪配置:检查AR Session配置和
简化调试的方法
使用ARKit Remote工具,通过电脑连接iOS设备在Unity编辑器中模拟测试,无需频繁打包即可验证多人体追踪逻辑;也可在代码中添加日志输出m_HumanBodyManager.trackables.count,确认是否检测到多人体。
内容的提问来源于stack exchange,提问作者Guye Incognito
相关产品推荐
相关产品推荐

