You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity 6中ARHumanBodyManager无法区分多人体追踪的问题咨询

Unity 6中ARHumanBodyManager无法区分多人体追踪的问题咨询

大家好,我最近在做一个基于Unity 6的人体追踪项目,遇到了个棘手的问题,想请教一下各位:

我目前在Unity 6里用ARHumanBodyManager实现人体运动追踪,最终把App部署到了带LiDAR传感器的11英寸iPad Pro(第4代)上。相关版本信息如下:

  • ARHumanBodyManager:6.0.4
  • Unity版本:6000.0.31f1
  • 设备:11英寸 iPad Pro(第4代)

我的需求是同时追踪多个人体,所以打算通过不同的trackableId来区分不同人体,为此写了以下代码,用字典维护当前追踪到的所有人体:

// HumanBodyManager 是 ARHumanBodyManager 的实例
HumanBodyManager.pose3DRequested = true;
HumanBodyManager.pose3DScaleEstimationRequested = true;
HumanBodyManager.trackablesChanged.AddListener(OnTrackableBodiesChanged);

internal Dictionary<TrackableId, ARHumanBody> trackedBodies = new Dictionary<TrackableId, ARHumanBody>();

void OnTrackableBodiesChanged(ARTrackablesChangedEventArgs<ARHumanBody> eventArgs)
{
    // 处理新增的人体
    foreach (var humanBody in eventArgs.added)
    {
        if (!trackedBodies.ContainsKey(humanBody.trackableId))
        {
            trackedBodies.Add(humanBody.trackableId, humanBody);
            Debug.Log($"Body Added: [{humanBody.trackableId}] (currently {trackedBodies.Count} bodies).");
        }
    }

    // 处理更新的人体
    foreach (var humanBody in eventArgs.updated)
    {
        if (trackedBodies.ContainsKey(humanBody.trackableId))
        {
            trackedBodies[humanBody.trackableId] = humanBody;
        }
    }

    // 处理移除的人体
    foreach (var (trackableId, _) in eventArgs.removed)
    {
        if (trackedBodies.ContainsKey(trackableId))
        {
            trackedBodies.Remove(trackableId);
            Debug.Log($"Body Removed: [{trackableId}] (currently {trackedBodies.Count} bodies).");
        }
    }
}

但实际测试时我发现,哪怕有其他人在玩家身后移动,ARHumanBodyManager始终只会返回1个追踪到的人体。更糟的是,有时候LiDAR会错误追踪到身后的人,但返回的trackableId还是同一个,导致原本追踪的骨骼突然跳转到身后位置,严重打乱了游戏体验。我还录了一段视频,能直观看到当身后有人走动时,追踪的骨骼突然向后跳的问题。

我现在想搞清楚:这个问题是ARHumanBodyManager本身的限制导致的,还是iPad上的ARKit 6的问题?有没有什么办法可以缓解这个问题的影响?

麻烦各位帮忙解答一下,非常感谢!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 10:10:31