您可以看到我有两个目标和两个3D对象,每次检测到它们时它们就会覆盖它们。
现在,我想为两个目标添加单独的事件(onFound,onLost)。
做到这一点的最佳方法是什么?我应该为每个目标添加一个单独的脚本吗?
答案 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(/* ... */);