有没有一种方法可以按特定顺序跟踪vuforia目标?

时间:2019-09-18 13:28:11

标签: c# unity3d vuforia event-tracking

我正在尝试按照特定顺序跟踪vuforia图像目标,以便在扫描第一个目标之前无法跟踪下一个目标。

1 个答案:

答案 0 :(得分:0)

您应该扩展vuforia图像目标识别并添加类似order变量。在其他脚本中,您可以具有静态变量或currentTrackedOrder

public class VuforiaCustomBehaviour: MonoBehaviour, ITrackableEventHandler
{
   public TrackableBehaviour mTrackableBehaviour;

   //order of image target
   public int order = 0;
   void Start()
   {
      mTrackableBehaviour = GetComponent<TrackableBehaviour>();
      if (mTrackableBehaviour)
      {
          mTrackableBehaviour.RegisterTrackableEventHandler(this);
      }
   }

   public void OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, 
   TrackableBehaviour.Status newStatus)
   {
      if (newStatus == TrackableBehaviour.Status.DETECTED ||
      newStatus == TrackableBehaviour.Status.TRACKED ||
      newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED)
      {
          if (order == MainScript.currentTrackedOrder)
          {
              //Activate your object here
              DoSmth();
              MainScript.currentTrackedOrder++;
          }
       }
       else
       {
           OnTrackingLost();
       }
   }
}

因此,您可以将此脚本添加到所有图像目标,并按顺序排列所需数字变量。另外,您应该禁用默认的可跟踪事件处理程序。

相关问题