使用针对 iOS 和 android 增强的 Vuforia 在纸张上显示动态文本

Show Dynamic Text on a Paper using Vuforia augmented for iOS and android

我需要在移动设备将文字放在纸上时在纸上显示文字,这基本上是增强现实功能。

论文中会有一个标记,应用程序本身会识别标记并放置一个从服务器接收的动态文本。所以这段文字会改变

因此,一开始我决定使用 Vuforia SDK,因为它比任何其他可用的 SDK 提供更多支持。所以我设法 运行 那里有示例应用程序并在我自己的标记 "tea pot" 那里显示,

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

1) 使用unity创建二维文本对象 2) 像在茶壶中一样使用 openGL 渲染文本

所以我的问题是这样做的合适方法是什么??我知道 OpenGL 不容易实现,即使是 Unity 也会提供多个不必要的文件,有利有弊

最好的方法是什么??

您从服务器获取文本,比方说 json 文件。解析它并将结果应用于世界中的文本网格对象或文本对象 canvas。

https://docs.unity3d.com/Manual/class-TextMesh.html

https://unity3d.com/fr/learn/tutorials/topics/user-interface-ui/ui-text

您可以将这些对象放置在图像目标下的茶壶位置或修改 DefaultTrackableEventHandler,这样它不会影响子对象上的 Collider 和 Renderer,而是对任何对象执行操作。

寻找 OnTrackingFound/Lost 方法。

因此,在阅读了几篇文章后,我设法将 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);