Mr.*_*r.G 7 unity-game-engine ios vuforia
当移动设备将其放在纸上时,我需要在纸上显示文本,这基本上是增强现实功能.
文件中将有一个制作者,它自己的应用程序将识别标记,并应放置一个从服务器接收的动态文本.所以这个文本会改变
因此,作为一个开始,我决定使用Vuforia SDK,因为它比任何其他可用的sdk都有更多的支持.所以我设法在那里运行示例应用程序并在我自己的标记中显示"茶壶",
但现在是最难的部分,我需要在标记上渲染文本而不是茶壶.所以似乎我有两个选择
1)使用unity创建2d文本对象2)使用teGLot中的openGL渲染文本
所以我的问题是这样做的适当方法是什么?我知道OpenGL并不容易实现,即使Unity会提供多个不必要的文件也有利有弊
什么是最好的方法?
你从服务器得到你的文本,让我们说json文件.解析它并将结果应用于世界画布中的文本网格对象或Text对象.
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);
Run Code Online (Sandbox Code Playgroud)