在GameObject位置创建GUI UI
Create GUI UI at GameObject position
我想在GameObject的位置创建一个GUI UI,具体是这个例子菜单:
http://docs.unity3d.com/Manual/gui-Basics.html
我试过这个:
new Rect (playerPosX, playerPosY, 100, 90)
作为第一个参数使用 gameObject.transform.position.x 和 y 但 GUI 是基于左上角的。
我该怎么做?
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);
首先将世界坐标系(笛卡尔坐标系)中的玩家位置转换为屏幕坐标space,即你提到的基于左上角的使用
Vecto3 temp = Camera.main.WorldToScreenPoint(playerPosition);
然后您可以仅使用 temp 的 x 和 y 分量(因为左上角的位置)。
根据我的理解,您正在寻找的不是 GUI 它的 text mesh. GUI will stick with your (x,y) screen position but the text mesh 是您可以在游戏对象附近的场景中的任何位置显示的内容。
我想在GameObject的位置创建一个GUI UI,具体是这个例子菜单:
http://docs.unity3d.com/Manual/gui-Basics.html
我试过这个:
new Rect (playerPosX, playerPosY, 100, 90)
作为第一个参数使用 gameObject.transform.position.x 和 y 但 GUI 是基于左上角的。
我该怎么做?
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);
首先将世界坐标系(笛卡尔坐标系)中的玩家位置转换为屏幕坐标space,即你提到的基于左上角的使用
Vecto3 temp = Camera.main.WorldToScreenPoint(playerPosition);
然后您可以仅使用 temp 的 x 和 y 分量(因为左上角的位置)。
根据我的理解,您正在寻找的不是 GUI 它的 text mesh. GUI will stick with your (x,y) screen position but the text mesh 是您可以在游戏对象附近的场景中的任何位置显示的内容。