Unity GUI无法在正确的位置显示文本

时间:2014-06-23 13:12:50

标签: c# user-interface unity3d 2d

我的场景中有一定数量的精灵。这是一个2D游戏。我想在sprite上显示一些文本,每个Sprite的GameObject附加一个脚本。在脚本中,我有以下OnGUI()方法

void OnGUI ()
{
    GUI.contentColor = Color.black;
        Rect label = new Rect ();
        label.x = worldToRect (transform.position).x;
        label.y = worldToRect (transform.position).y;
        label.width = 100;
        label.height = 100;
        GUI.Label (label, number.ToString ());

}
Vector2 worldToRect (Vector3 WorldPosition)
    {
            Vector2 v = Camera.main.WorldToScreenPoint (WorldPosition);
            return GUIUtility.ScreenToGUIPoint (v);
    }
但是这个位置并不完全正确。两个白色精灵应该在中心显示3个。我在编辑器中检查了它们的变换,它们精确地对准精灵的中心。我该如何纠正? The Two white Sprites should display 3 at the centre.I checked their transform in the editor and they align exactly at the centre of the sprite

1 个答案:

答案 0 :(得分:0)

标签的Rect中的x和y是左上角的位置,它与GameObjects的中心对齐。

要使它们居中,从x减去宽度的一半,从y减去一半的高度,并确保标签的样式将对齐设置为“中间中心”