Unity 2017:2D屏幕原点

时间:2017-11-29 00:01:09

标签: c# unity3d

我无法找到答案的超级基本问题:

我所做的就是创建一个新的2D统一项目并在场景中添加一个精灵。我向精灵添加了一个C#脚本,并将其位置设置为新的Vector2(0,0)。运行时,精灵将其中心点移动到屏幕中心,而不是左下角。当我在编辑器中将spite的位置设置为0,0时也是如此。我已经尝试让精灵成为相机的孩子,我尝试过使用WorldToScreenPoint()。已经有一段时间了,因为我使用过Unity,所以我不能理解某些东西。

感谢您的帮助

编辑: 正如这里提到的单行代码,不要认为这会增加很多清晰度。

public class NewBehaviourScript : MonoBehaviour {

// Use this for initialization
void Start () {
    this.transform.position = new Vector2 (0, 0);
}

// Update is called once per frame
void Update () {

}

}

enter image description here

1 个答案:

答案 0 :(得分:1)

Unity基于相机的平截头体渲染,而不是任意的屏幕像素位置(除非您通过脚本将其转换为平截头体)。

默认情况下,相机会“查看”场景空间原点(0, 0),如果你将精灵放在那里,当然它会在游戏的屏幕上居中。

<强> [编辑]

BTW,来自......

  

我试过让雪碧成为相机的孩子,我试过了   使用WorldToScreenPoint()。

......似乎你正试图将一个精灵放在与相机有关的地方。如果是GUI,那么正确的方法是 作为相机的孩子。 而是使用屏幕空间Canvas。屏幕空间画布与相机不同,也基于像素位置工作! =)