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

如何让Vuforia图像目标在Magic Leap 2的MRTK 3项目中正常工作?

解决方案:Magic Leap 2 + MRTK3 + Vuforia 图像目标显示异常修复

1. 修正相机层级与渲染优先级

  • 确保MRTK XR Rig的Camera组件和Vuforia Behaviour的相机设置无冲突:将MRTK相机的Depth设为低于Vuforia AR相机的Depth(比如MRTK相机Depth=0,Vuforia AR相机Depth=1),避免渲染覆盖。
  • 禁用MRTK XR Rig相机的Auto Graphics API,强制设置为OpenGLES3(Magic Leap 2原生支持的API),Vuforia侧同步该设置。

2. 调整Vuforia追踪与MRTK空间映射的兼容性

  • 在Vuforia Configuration中,关闭Smart Terrain和Mid Air Tracking功能,避免与MRTK的空间锚定/跟踪逻辑冲突。
  • 给图像目标对象添加MRTK Object Manipulator组件,勾选Keep Orientation Relative To Camera,确保追踪状态变化时对象不会因空间坐标重置消失。

3. 修复渲染层级与可见性设置

  • 检查图像目标的Layer,确保其属于Default或MRTK默认的UI/World层,且MRTK相机的Culling Mask已勾选该Layer。
  • 禁用图像目标对象的Static标记,静态对象在MRTK动态空间更新时可能被错误移出渲染队列。

4. 脚本层面强制保持渲染状态

给图像目标挂载以下脚本,强制在追踪状态变化时维持激活:

using UnityEngine;
using Vuforia;

public class KeepTargetVisible : MonoBehaviour, ITrackableEventHandler
{
    private TrackableBehaviour mTrackableBehaviour;

    void Start()
    {
        mTrackableBehaviour = GetComponent<TrackableBehaviour>();
        mTrackableBehaviour?.RegisterTrackableEventHandler(this);
    }

    public void OnTrackableStateChanged(
        TrackableBehaviour.Status previousStatus,
        TrackableBehaviour.Status newStatus)
    {
        if (newStatus is TrackableBehaviour.Status.DETECTED or 
            TrackableBehaviour.Status.TRACKED or 
            TrackableBehaviour.Status.EXTENDED_TRACKED)
        {
            gameObject.SetActive(true);
            GetComponent<Renderer>().enabled = true;
        }
    }
}

注意:不要在丢失追踪时直接禁用对象,仅在识别到后强制激活,避免MRTK空间管理逻辑误判对象状态。

5. 验证版本兼容性

  • 确保使用MRTK3版本≥3.0.0-pre.12,Vuforia版本≥10.15.0,这两个版本开始正式支持Magic Leap 2协同工作。
  • 重新导入MRTK3的Magic Leap 2专用包,覆盖可能存在的配置冲突文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 22:15:04