Hololens 2中MRTK 3+Vuforia图像识别后物体偏移问题求助
解决Hololens 2 + MRTK 3 + Vuforia 图像识别后物体瞬移问题
修正相机层级与跟踪配置
- 禁用MRTK XR Rig主相机的
Camera组件,仅保留XR Camera组件——Vuforia会接管相机跟踪逻辑,双相机同时运行会引发坐标冲突。 - 将Vuforia Behaviour组件的
World Center Mode设置为SPECIFIC_TARGET,指定你的Image Target作为跟踪中心,不要使用默认的DEVICE选项。
- 禁用MRTK XR Rig主相机的
调整Image Target的父级与空间绑定
- 不要把Image Target设为MRTK XR Rig的子对象,让它直接处于场景根节点下,避免MRTK的空间定位逻辑覆盖Vuforia的跟踪结果。
- 将需要显示的GameObject直接作为Image Target的子对象,固定好相对位置(比如设置为(0,0.5,0),刚好在图像上方)。
禁用MRTK的空间感知冲突模块
- 打开MRTK的
Input System Profile,关闭Spatial Awareness相关的自动扫描和空间重建功能,空间锚点生成会干扰Vuforia的图像跟踪坐标。 - 若场景中存在
Spatial Awareness System对象,先禁用它再测试。
- 打开MRTK的
修正Vuforia与MRTK的坐标同步
- 在Vuforia Behaviour组件中勾选Use External Camera,指定MRTK XR Rig的主相机作为外部相机,确保两者坐标空间一致。
- 确保Vuforia的
AR Session Origin与MRTK XR Rig的Camera Offset对象的位置、旋转完全对齐,避免出现坐标偏移。
代码层面强制锁定跟踪状态(可选)
- 给Image Target添加自定义脚本,识别到目标时强制锁定位置,防止意外坐标重置:
using UnityEngine; using Vuforia; public class LockImageTarget : MonoBehaviour, ITrackableEventHandler { private TrackableBehaviour mTrackableBehaviour; private bool mIsTracked; void Start() { mTrackableBehaviour = GetComponent<TrackableBehaviour>(); mTrackableBehaviour?.RegisterTrackableEventHandler(this); } public void OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { mIsTracked = newStatus is TrackableBehaviour.Status.DETECTED or TrackableBehaviour.Status.TRACKED or TrackableBehaviour.Status.EXTENDED_TRACKED; if (mIsTracked) { // 锁定位置,避免瞬移 transform.SetParent(null, true); } } }
- 给Image Target添加自定义脚本,识别到目标时强制锁定位置,防止意外坐标重置:
内容的提问来源于stack exchange,提问作者OxM
相关产品推荐
相关产品推荐

