我在Unity3D中遇到了一个GUI.Label的问题。如果我在屏幕上显示一些文本,并在向下1个像素和向右1个像素处显示完全相同的字符串,它在99.9%的时间内正确工作:
var old=GUI.color;
var shadow=rec;
shadow.x++; shadow.y++;
GUI.color=Color.black;
GUI.Label(shadow, txt, style);
GUI.color=old;
GUI.Label(rec, txt, style);
我已经有了这个相同的代码多年,但我最近才发现,一个特定的字符串将在错误的地方 Package 文本的影子文本,即使它们的矩形宽度相同,样式也相同。更奇怪的是,它不会在每一帧都这样做。当我用鼠标悬停在某个东西上时,文本就会出现,轻轻移动鼠标会导致阴影字符串返回&第四,两种不同的 Package 方式导致阴影文本与正常彩色文本不一致。也不是屏幕边缘问题。我使用2020.2.1f1。
先谢谢你了!
1条答案
按热度按时间dxpyg8gm1#
我可能应该使用新的UI系统来在屏幕上显示文本和其他2D视觉效果,但是,对于那些像我一样仍然使用古老的GUI系统的人,这里是我对Unity的换行错误的最终解决方案。放弃它并切换到另一种方法并不容易。下面是我提出的一个可以阴影文本的函数。它可能会被清理和优化: