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

时间:2018-12-28 21:40:19

标签: unity3d vuforia

enter image description here

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

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

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

1 个答案:

答案 0 :(得分:1)

您可以结帐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();
    }
}

然后,您可以通过拖放操作在检查器中附加反应(就像您对onClick组件的Button进行操作一样)

或者您也可以在运行时在脚本中添加侦听器

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