【问题标题】:Tracking one marker at a time vuforia一次跟踪一个标记 vuforia
【发布时间】:2017-10-31 04:36:45
【问题描述】:

我正在使用 Vuforia 创建一个 HoloLens 应用程序,我总共有 9 个标记以及与每个标记关联的游戏对象。我希望我的应用程序一次只显示一个对象:例如,我扫描第一个标记,显示第一个对象;当我扫描第二个标记时,我希望第一个对象消失,只显示第二个对象,依此类推。

我尝试向每个游戏对象添加一个脚本,该脚本会破坏场景中的游戏对象,但这不起作用。

我对 C# 知之甚少,所以请指点我具体的代码。

谢谢大家!

【问题讨论】:

  • 欢迎来到 SO。请阅读How do I ask a good question?。至少展示你到目前为止所尝试的内容。
  • @pirho 这个问题其实问的很对,这是关于Vuforia内部的一些设计,不需要显示代码。
  • @Everts 感谢您纠正我。正是这个 我对 C# 知之甚少,所以请指点我具体的代码。 让我怀疑这个问题缺乏自己的努力。还有更详细的描述什么和如何尝试做可能已经到位。
  • 基本上,我不记得确切的术语,所以我会把它作为评论(有人很可能会找到并发布作为答案)。 Vuforia 摄像头组件可以设置同时跟踪多少个目标。我认为 Max 是 5,但设置为 1 意味着一旦找到目标,系统就不会再寻找另一个。
  • @Everts 感谢您的意见。是的,相机有设置,但我还需要启用扩展跟踪:虽然相机不能跟踪多个标记,但它仍会显示所有其他对象(同样,由于扩展跟踪)。我有什么办法可以在检测中加入一个代码来破坏场景中的一切?

标签: unity3d vuforia hololens


【解决方案1】:

为了控制同时检测的最大目标数量需要使用Vuforia的提示:

Vuforia::setHint(Vuforia::HINT_MAX_SIMULTANEOUS_IMAGE_TARGETS, <desired number>);

这是您所要求的 - 但是,根据您在 cmets 中所写的内容,这并不是您真正需要的。如果您想对其他目标使用扩展跟踪,这意味着它们也必须被检测到。所以,你真正需要的是——一旦你有了一个目标,就知道它现在是否被扩展,并采取相应的行动。 这是通过:

if ( result.getStatus() == Vuforia::TrackableResult::EXTENDED_TRACKED )

【讨论】:

    【解决方案2】:

    这是 Vuforia 配置中的一个选项。

    1. 选择场景的 ARCamera 资产
    2. 点击“打开 Vuforia 配置”
    3. 将“最大同时跟踪图像”更改为 1。

    我看到您提到这不适用于扩展跟踪。我自己没有注意到这种行为,但如果需要,您可以使用 GameObject.SetActive() 手动切换对象的活动状态。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多