在GameObject位置创建GUI UI

时间:2016-05-31 05:40:33

标签: c# unity3d unityscript

我想在GameObject的位置创建一个GUI UI,特别是这个示例菜单:

http://docs.unity3d.com/Manual/gui-Basics.html

我试过这个:

new Rect (playerPosX, playerPosY, 100, 90)

作为使用gameObject.transform.position.x和y的第一个参数,但GUI是从左上角开始的。

我该怎么做?

3 个答案:

答案 0 :(得分:2)

首先将世界坐标系(笛卡尔坐标系)中的玩家位置转换为您提到的左上角使用的屏幕坐标空间

Vecto3 temp = Camera.main.WorldToScreenPoint(playerPosition);

然后你可以只使用temp的x和y分量(因为左上角位置)。

答案 1 :(得分:1)

WorldToScreenPoint会做到这一点 Unity Documentation

var pos = Camera.main.WorldToScreenPoint(GameObject.Find("NameOfObject").transform.position);
    Rect d = new Rect(Screen.width - pos.x, Screen.height - pos.y, 400, 400);

答案 2 :(得分:0)

根据我的理解,您所寻找的不是 GUI text mesh。 GUI将坚持您的(x,y)屏幕位置,但text mesh是您可以在游戏对象附近的任何位置显示的内容。