如何在 Vuforia 中为不同的 ImageTargets 正确添加事件?

How can I add events correctly for different ImageTargets in Vuforia?

你可以看到我有两个目标和两个 3D 对象,每次检测到它们时都会覆盖它们。

现在我想为两个目标添加单独的事件(onFound、onLost)。

最好的方法是什么?我应该为每个目标添加一个单独的脚本吗?

您可以查看 UnityEvent(例如按钮的 onClick)。

所以在每个图像目标上你可以有例如

public class CustomImageTarget : DefaultTrackableEventHandler
{
    public UnityEvent onFound;
    public UnityEvent onLost;

    protected override void OnTrackingFound()
    {
        // if you also want the default behaviour in this
        // (enables Renderers, Colliders and Canvas)
        // base.OnTrackingFound();

        onFound.Invoke();
    }

    protected override void OnTrackingLost()
    {
        // if you also want the default behaviour in this
        // (Disables Renderers, Colliders and Canvas)
        // base.OnTrackingLost();

        onLost.Invoke();
    }
}

然后您可以通过拖放在检查器中附加反应(就像您对 Button 组件的 onClick 所做的那样)

或者您可以在运行时的脚本中添加侦听器,方法是

aCustomImageTatgetReference.onFound.AddListener(/* ... */);