已启用设备跟踪器时Vuforia OntrackingLost功能不起作用?

问题描述 投票:0回答:1

我现在面临如下问题:当我想在其中放置四处移动场景中的对象,我需要留在它的地方,以便它必须是一个锚对象。

不幸的是,我们不能没有使用飞机地面检测锚定在Vuforia的对象。

后此外“启用飞机地面检测”,增强对象出现,永远不会丢失的功能“onTrackingLost”永不触发。看来,这个功能不会自动被调用,而不是工作!

我们怎样才能解决这个问题,好吗?!

c# unity3d vuforia
1个回答
0
投票

你可以从vuforia目标分离对象 - 使得它不是一个孩子,而是在层次结构设置到其他地方 - 只有将其移动到正确的坐标OnTargetFound

例如添加像UnityEvent<Transform>(这正好给vuforia目标)

[system.Serializable]
public class TransformEvent : UnityEvent<TargetFoundEventHandler>
{
}

public class TargetFoundEventHandler : DefaultTrackableEventHandler
{
    public TransformEvent onTrackingFound;

    protected override void OnTrackingFound()
    {
        onTrackingFound.Invoke(transform);
    }
}

你可以用它来引用回调(类似于onClicks的Button),但这些方法都期待像TargetFoundEventHandler参数(这正好到该对象的地方)

public class PlaceMeOnTarget()
{
    public void PlaceOnTarget(TargetFoundEventHandler target)
    {
        transform.SetPositionAndRotation(target.transform.position, target.transform.rotation);

        // optinally remove the callback so this object
        // will not be placed elsewhere
        target.onTrackingFound.RemoveListener(PlaceOnTarget);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.