使用Vuforia增强现实技术在iOS和Android上展示动态文本纸张

7

我有一个需求,希望移动设备放置在纸张上时能够显示文本,这基本上是增强现实功能。

纸张上将会有一个标记,应用程序本身将识别该标记,并应该放置从服务器接收的动态文本。因此,这个文本将会改变。

所以,作为一个开始,我决定使用Vuforia SDK,因为它比其他可用的SDK有更多的支持。所以我成功地运行了他们的示例应用程序,并在自己的标记中显示了"茶壶"。

但现在最难的部分来了,我需要在标记上呈现文本,而不是茶壶。所以,似乎我有两个选择:

1)使用Unity创建2D文本对象 2)使用OpenGL像茶壶一样呈现文本

那么我的问题是,什么是适当的方法?我知道OpenGL不容易实现,即使Unity也会提供多个不必要的文件,两者都有优缺点。

那么,什么是最好的方法呢?

2个回答

5

我认为我的需求非常明确,跟踪图像并在其上方呈现文本,我认为只有图像目标就足够满足我的需求了。 - Mr.G
好的。在这种情况下,如果您使用Text Mesh,可以将物品放置在茶壶位置而不更改任何内容。如果您使用Canvas,则需要进行一些更改,因为没有渲染器。因此,您必须激活/停用对象。 - Everts
但是我可以将文本网格用作图像目标的子级吗? - Mr.G
使用以下链接,但它显示按钮不在图像目标的顶部 https://developer.vuforia.com/forum/faq/unity-how-can-i-popup-gui-button-when-target-detected - Mr.G
我认为这就是我要做的。并且在标记移动时更新其位置,无论如何我会尝试去做这个。将在状态上放置一个注释,并接受此作为答案。 - Mr.G
显示剩余11条评论

0

在阅读了几篇文章后,我成功地将一个GuiLabel放置在真实世界物体的顶部。这主要是通过使用WorldToScreenPoint并将其设置为该位置来实现的。

Camera cam=Camera.current;
GUIStyle textStyle = new GUIStyle ();
textStyle.fontSize = 40;
textStyle.normal.textColor = Color.yellow;

Vector3 pos=cam.WorldToScreenPoint(targetPosition);
GUI.Label(new Rect(pos.x-40,Screen.height-pos.y,250,200),"Product Price",textStyle); 

出于性能原因,不建议使用传统的GUI。此外,它也不是最灵活的东西,因为你需要进行运行以查看效果,然而新的UI系统允许在场景/游戏视图中实时预览。 - Everts
你是什么意思?“因为你需要运行才能看到,而新的UI系统允许在场景/游戏视图中查看。”而在我的示例中,我现在没有场景/游戏视图。 - Mr.G
@user4204805 几年前做过这个。 - Mr.G

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接