【问题标题】:Unity AR Multiple Image Target but not simultaneouslyUnity AR 多图像目标但不是同时
【发布时间】:2017-03-08 17:45:17
【问题描述】:

我正在构建这个应用程序,它将识别绘画并在 AR 的帮助下显示有关它的信息。 而且我需要调用多个图像目标,但不能同时调用,如果它被 AR 相机检测到,它只会调用图像目标。

*我尝试创建许多带有图像目标的场景,但我不能调用不同的图像目标,它会一直恢复到只有 1 个图像目标。

这是你可以在菜单中看到的,

主菜单

  • 启动AR摄像头(这部分应该有很多图像目标,但不能同时检测到)
  • 帮助(如何使用应用程序)
  • 退出

*我在创建 AR 时使用 vuforia

提前感谢那些会帮助我的人。

这是图像目标及其数据库

View post on imgur.com

【问题讨论】:

  • 为什么你们投了反对票?
  • 把你的代码放在这里。甚至可能将项目上传到某个地方,然后 ppl 可以查看并帮助您。

标签: android unity3d vuforia


【解决方案1】:

运行多目标场景示例。共有三个目标(石头、木头和道路)。

每个都包含 TrackableBehaviour 组件。

抓住它并在“开始”中禁用它。如果您在 Awake 中执行此操作,它将很可能在组件本身的 Awake 中或通过其他管理器设置回活动状态。

public class TrackerController:MonoBehaviour
{
    private IDictionary<string,TrackableBehaviours> trackers = null;

    private void Start()
    {
         this.trackers = new Dictionary<string,TrackableBehaviour>();
         var trackers = FindObjectsOfType<TrackableBehaviour>();
         foreach(TrackingBehaviour tb in trackers)
         {
              this.trackers.Add(tb.TrackableName, tb);
              tb.enabled = false;
         }
    }
    public bool SetTracker(string name, bool value)
    {
         if(string.IsNullOrEmpty(name) == true){ return false; }
         if(this.trackers.ContainsKey(name) == false){ return false; }
         this.trackers[name].enabled = value;          
         return true;
    }
}

该方法查找所有 TrackableBehaviour 并将它们放在字典中以便于访问。设置方法返回boolean,可以改成抛出异常或者else。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-04
    • 2023-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多