【问题标题】:Enable tracking not working for more than one cloud target image in vuforia 7.5.20在 vuforia 7.5.20 中启用跟踪不适用于多个云目标图像
【发布时间】:2018-10-17 10:11:14
【问题描述】:

更新

我检查了不同版本的 unity,它适用于安装在另一台笔记本电脑上的 Unity 2018.2.6f1 Personal。但是我有 Unity 2018.2.12f1 Personal,它给出了错误。是统一错误吗?


我正在使用 vuforia 的基本免费计划,并使用 vuforia 进行云识别。云识别部分工作正常,可跟踪的处理程序也打印云识别的图像名称。但是,当我尝试启用对附加图像目标的跟踪时,它仅适用于第一张图像。在第一个之后,它给出了以下错误:

TargetSearchResult cloud-image-name 无法启用跟踪。 UnityEngine.Debug:LogError(对象) Vuforia.TargetFinder:EnableTracking(TargetSearchResult, GameObject) CloudRec:OnNewSearchResult(TargetSearchResult) (在 资产/脚本/CloudRec.cs:66) Vuforia.ObjectRecoBehaviour:Update()

上面的错误表示以下行是问题:

m_ObjectTracker = TrackerManager.Instance.GetTracker<ObjectTracker>();
ImageTargetBehaviour imageTargetBehaviour = (ImageTargetBehaviour)m_ObjectTracker.TargetFinder.EnableTracking(targetSearchResult, ImageTargetTemplate.gameObject);

技术版本:

Vuforia 版本:7.5.20 | Unity 2018.2.12f1 个人版

完整代码在这里:

public class CloudRec : MonoBehaviour, ICloudRecoEventHandler
{

  private CloudRecoBehaviour mCloudRecoBehaviour;
  private bool mIsScanning = false;
  private string mTargetMetadata = "";
  public ImageTargetBehaviour ImageTargetTemplate;
  ObjectTracker m_ObjectTracker;
  TargetFinder m_TargetFinder;


  // Use this for initialization
  void Start()
  {
      // register this event handler at the cloud reco behaviour
      mCloudRecoBehaviour = GetComponent<CloudRecoBehaviour>();
      if (mCloudRecoBehaviour)
      {
          mCloudRecoBehaviour.RegisterEventHandler(this);
      }
  }

  public void OnInitialized()
  {
      m_ObjectTracker = TrackerManager.Instance.GetTracker<ObjectTracker>();
      Debug.Log("Cloud Reco initialized");
  }
  public void OnInitError(TargetFinder.InitState initError)
  {
    Debug.Log("Cloud Reco init error " + initError.ToString());
  }
  public void OnUpdateError(TargetFinder.UpdateState updateError)
  {
      Debug.Log("Cloud Reco update error " + updateError.ToString());
  }

  public void OnStateChanged(bool scanning)
  {
      mIsScanning = scanning;
      if (scanning)
      {
        // clear all known trackables
          ObjectTracker tracker = TrackerManager.Instance.GetTracker<ObjectTracker>();
          tracker.TargetFinder.ClearTrackables(false);
      }
  }

  // Here we handle a cloud target recognition event
  public void OnNewSearchResult(TargetFinder.TargetSearchResult targetSearchResult)
  {
      GameObject newImageTarget = Instantiate(ImageTargetTemplate.gameObject) as GameObject;
      GameObject augmentation = null;

      if (augmentation != null)
          augmentation.transform.SetParent(newImageTarget.transform);
      if (ImageTargetTemplate)
      {
          m_ObjectTracker = TrackerManager.Instance.GetTracker<ObjectTracker>();
          ImageTargetBehaviour imageTargetBehaviour = (ImageTargetBehaviour)m_ObjectTracker.TargetFinder.EnableTracking(targetSearchResult, ImageTargetTemplate.gameObject);


          //ImageTracker imageTracker = TrackerManager.Instance.GetTracker<ImageTracker>();
          //ImageTargetBehaviour imageTargetBehaviour = (ImageTargetBehaviour)imageTracker.TargetFinder.EnableTracking(targetSearchResult, newImageTarget);

      }
      if (mIsScanning)
      {
          mCloudRecoBehaviour.CloudRecoEnabled = true;
      }

  }

  // Update is called once per frame
  void Update()
  {

  }

  public void OnInitialized(TargetFinder targetFinder)
  {
      m_ObjectTracker = TrackerManager.Instance.GetTracker<ObjectTracker>();
      m_TargetFinder = targetFinder;
  }
}

【问题讨论】:

    标签: c# unity3d vuforia vuforia-cloud-recognition


    【解决方案1】:

    经过将近一周的搜索,我得到了错误原因。统一运行时会发生错误,但是当我构建到 AndroidiOS 时,它工作正常。所以停止了对代码的怀疑,这让我开箱即用。所以我决定在同一台机器上测试各种版本的 unity 和 vuforia。它无助于克服错误。最终,我用其他机器测试过,我得到了错误原因。这是因为硬件兼容性。

    就我而言,我使用的是 ma​​c pro-2009 mid,它不支持 ObjectTracking 但我在 MacBook Air 2017 上使用相同的代码和相同的技术版本进行了测试strong> 和 Mac Pro 2014 年中 运行良好。所以我认为这是硬件兼容性问题!

    【讨论】:

    • 这似乎是一个笑话,但这是真的!在我的 Mac mini(2011 年中)上出现同样的问题
    猜你喜欢
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2018-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多