文字独立于Unity的屏幕分辨率?

时间:2015-12-28 18:34:46

标签: c# text unity3d resolution unity5

我有以下代码,具体取决于用户显示器的分辨率:

void OnGUI()
{
    GUI.Label(new Rect(432, 525, 9000, 9000), ("Hello!"));
}

当然,文本的位置会在具有不同分辨率的设备中发生变化。如何使文本独立于Unity中的屏幕分辨率?

2 个答案:

答案 0 :(得分:2)

考虑使用Unitys新的GUI系统。这允许您在编辑器中设计UI。您可以以屏幕分辨率独立的方式将文本标签锚定到屏幕,并且可以配置字体大小以自动适应该文本标签内的可用空间。

答案 1 :(得分:1)

我有解决这个问题的方法。想法是以百分比而不是硬编码坐标来分配位置。

  1. 首先找出您的基本分辨率,以便进一步开展工作 基于。打印Screen.widthScreen.height。就我而言 428 x 321
  2. 找出当前位置的百分比 解析度。如果我考虑GUI.Label(new Rect(50, 50, 300, 300), ("Hello!"));,那么它的宽度百分比为50.0f/428.0f 50.0f/321.0f身高百分比。
  3. 现在指定职位w.r.t. 这些百分比。比如,GUI.Label(new Rect((50.0f/428.0f) * Screen.width, (50.0f/321.0f) * Screen.height, 300, 300), ("Hello!"));