首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >即使图像目标在VUFORIA和UNITY中丢失,也能使3D对象保持在屏幕上

即使图像目标在VUFORIA和UNITY中丢失,也能使3D对象保持在屏幕上
EN

Stack Overflow用户
提问于 2017-03-13 01:46:03
回答 4查看 4.3K关注 0票数 0

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

我做了太多的事情,像父母改变,协程,调用,但似乎都不起作用..

提前感谢!

EN

回答 4

Stack Overflow用户

发布于 2017-03-13 02:49:04

当目标丢失时,您可以防止对象消失。只需将(编辑) OnTrackingLost方法中的DefaultTrackableEventHandler更改为不执行任何操作。

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

编辑:

代码语言:javascript
运行
复制
void OnTrackingFound(){
   TrackerObject[] trackers = FindObjectsOfType<TrackerObject>()
   foreach(var t in trackers){ t.SetOff();}
   this.gameObject.GetComponent<TrackerObject>().SetOn();
}

然后,您就有了这个附加到所有ImageTarget的TrackerObject组件。它有SetOn/Off方法来做它所说的事情。

你可以通过存储信息来使代码更好,而不是每次都去寻找它们。

票数 0
EN

Stack Overflow用户

发布于 2018-09-01 20:54:45

只需从检查器菜单启用Extended Tracking即可。例如:

票数 0
EN

Stack Overflow用户

发布于 2019-04-16 19:07:55

当Vuforia Target存在时,您可以获取检测到的对象的位置和方向,然后可以实例化相同的对象,如下所示:

代码语言:javascript
运行
复制
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,并在您想要在标记上显示它时再次启用它。但这有一个限制,即世界坐标经验将不会被体验,它将类似于https://www.youtube.com/watch?v=iHhMCdh3k7U

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42750928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档