2016-05-31 119 views
1

创建GUI界面,我想创建在游戏物体的位置的GUI用户界面,特别是这个例子菜单:在游戏物体位置

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

我已经试过这样:

new Rect (playerPosX, playerPosY, 100, 90) 

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

我该怎么做?

+0

你是说你想要它基于左上角?你需要使用0,0来代替'playerPosX,playerPosY'的前2个参数 – Ash

+0

我想他想要相同的菜单,但不是左上角。他希望它是动态的,我会说.... –

回答

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

首先转换成播放器的位置是在世界坐标系(笛卡尔坐标系)到屏幕坐标空间,你所提到的基于左上角使用

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

那么你只能使用temp的x和y分量(因为左上角的位置)。

0

根据我的理解,你要找的不是GUItext mesh。 GUI将坚持你的(x,y)屏幕位置,但text mesh是你可以在场景的任何地方显示你的游戏对象附近。