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

Unity中Vuforia的物体坐标分配规则及两追踪物体距离计算

Vuforia目标坐标参考系与物体距离计算问题

一、Vuforia对物体B的坐标分配逻辑

当你将物体A设置为SPECIFIC_TARGET类型的World Center后:

  • 只要A处于持续跟踪状态,Vuforia会把A的Transform固定在Unity世界空间的初始位置(你场景中摆放的位置),相机的位置/旋转会相对于A更新——这和你观察到的一致。
  • 此时物体B被检测到时,它的坐标会被Vuforia转换到以A为原点的Unity世界空间中,理论上移动相机时B的位置应该保持稳定(只要A和B都被持续跟踪)。
  • 你遇到的B位置随相机移动的情况,大概率是A丢失了跟踪:此时Vuforia会自动 fallback 到DEVICE模式(以相机为跟踪中心),B的坐标会切换为相对于相机的跟踪空间,导致移动相机时B的位置跟着变化。

二、两个物体的距离计算方法

只要确保A和B的Transform处于同一个空间坐标系下,计算距离非常直接:

  1. 如果A作为World Center且持续跟踪,直接调用Unity的API计算世界空间下的距离:
    float distance = Vector3.Distance(ATarget.transform.position, BTarget.transform.position);
    
  2. 如果出现A暂时丢失跟踪的情况,你可以手动将B的坐标转换到A的局部空间(前提是之前保存过A的跟踪状态数据):
    // 假设ATransform是A处于跟踪状态时保存的Transform引用
    Vector3 bPosInASpace = ATransform.InverseTransformPoint(BTarget.transform.position);
    float distance = bPosInASpace.magnitude;
    

额外注意:要确保两个ImageTarget的TrackableBehaviour组件都正确启用,并且在Vuforia Configuration中正确设置World Center Mode为SPECIFIC_TARGET并指定A为目标。

内容的提问来源于stack exchange,提问作者wajid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 04:32:20