如何在 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(/* ... */);
你可以看到我有两个目标和两个 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(/* ... */);