【问题标题】:Create GUI UI at GameObject position在 GameObject 位置创建 GUI UI
【发布时间】:2016-05-31 05:40:33
【问题描述】:

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

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

我试过了:

new Rect (playerPosX, playerPosY, 100, 90)

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

我该怎么做?

【问题讨论】:

  • 你是说你想要它基于左上角吗?您需要对前 2 个参数使用 0,0 而不是 playerPosX, playerPosY
  • 我认为他想要相同的菜单,但不在左上角。他希望它是动态的,我想说....

标签: c# unity3d unityscript


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    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);
    

    【讨论】:

      【解决方案3】:

      据我了解,您正在寻找的不是 GUI 它的text mesh。 GUI 将与您的 (x,y) 屏幕位置保持一致,但 text mesh 是您可以在场景中靠近游戏对象的任何位置显示的内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多