【问题标题】:Keep 3D object on screen even after Image target lost in VUFORIA and UNITY即使在 VUFORIA 和 UNITY 中丢失图像目标后,仍将 3D 对象保留在屏幕上
【发布时间】:2019-09-14 00:56:46
【问题描述】:

我正在创建 AR 应用程序,其中有 10 个图像目标(一次只能识别 1 个)。我想保持 3D 对象即使在目标图像丢失后也能保留,并在再次找到图像目标(相同/或不同目标)后更新 3D 模型...

我已经做了很多事情,例如父更改,协程,调用,但似乎没有一个工作..

提前致谢!

【问题讨论】:

    标签: c# unity3d augmented-reality vuforia


    【解决方案1】:

    您可以在目标丢失时防止对象消失。只需将 (EDIT) OnTrackingLost 方法中的 DefaultTrackableEventHandler 更改为什么都不做。

    如果您丢失模型的速度足够快,这将导致您的模型挂在屏幕中间。你慢慢地远离目标,模型到达边缘,可能是在屏幕外时跟踪丢失了。

    编辑:

    void OnTrackingFound(){
       TrackerObject[] trackers = FindObjectsOfType<TrackerObject>()
       foreach(var t in trackers){ t.SetOff();}
       this.gameObject.GetComponent<TrackerObject>().SetOn();
    }
    

    那么你就有了这个附加到所有 ImageTarget 的 TrackerObject 组件。它有 SetOn/Off 方法来执行它所说的操作。

    您可以通过存储信息而不是每次都查找它们来改进代码。

    【讨论】:

    • 我这样做了......但在这种情况下,所有 10 个 3D 模型都出现在相机视图中......因为在我的场景视图中,它们非常接近
    • 我想你说的是“OnTrackingLost()”而不是 OnTrackingFound
    • 哎呀确实是的。
    • 如果 OnTrackingLost() 发表评论,那么所有已跟踪的模型都保留在场景中......但我只想跟踪最后一个......我认为它与 TrackableBehaviour.Status newStatus 和以前的状态..但我"我无法做出逻辑
    • 当你找到一个新的标记时,禁用所有其他标记。当您丢失该标记时,只剩下最后一个,因为您在找到该标记时禁用所有其他标记。有意义吗?
    【解决方案2】:

    只需从 Inspector 菜单中启用 Extended Tracking 即可。 例如 :

    【讨论】:

      【解决方案3】:

      当Vuforia Target存在时,你可以获取检测到的对象的位置和方向,然后你可以将相同的对象实例化为:

      GameObject generatedObj = Instantiate(mTrackableBehaviour.gameObject, new  Vector3(0,-4.0f,18), Quaternion.identity);
      generatedObj.transform.localScale = new Vector3(1,1,1); // change its local scale in x y z format
      generatedObj.AddComponent<Translate>();
      

      这样做之后,从场景中禁用 ImageTarget 并在您希望它依赖于 Marker 时再次启用它。 但这有一个限制,即 世界坐标体验不会被体验,会像 https://www.youtube.com/watch?v=iHhMCdh3k7U

      【讨论】:

        【解决方案4】:

        检查您是否没有在 ARCamera 对象的 Vuforia 引擎配置中启用“跟踪设备姿势”选项,此选项会导致对象保留在屏幕中。

        禁用“跟踪设备姿势”即可解决问题。

        Unity 2018.3.6 与 Vuforia 7

        【讨论】:

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