0
我正在尝试制作2D游戏。 我有4个gameobjects,我想放置在屏幕的每个角落,即当我在手机上运行我的应用程序时,它应该在每个角落都可见。 所以我在剧本所做的是,有人可以向我解释2D统一坐标系吗?
//GameObject 1 script
void Start(){
transform.position = Camera.main.ScreenToWorldPoint(new Vector2(Screen.width, Screen.height));
}
//GameObject 2 script
void Start(){
transform.position = Camera.main.ScreenToWorldPoint(new Vector2(0, 0));
}
//And same for other 2 gameobjects...
,但我不是我的屏幕上看到任何对象。
感谢您的回复。我实际上想要在每个角落放置游戏对象的中心。作为一个实验,我打印出这个信息 - print(“Screen to World POINT:”+ Camera.main.ScreenToWorldPoint(new Vector2(0.0f,0.0f))); 结果是(-8.5f,-5.0f,-10.0f) 这是如何计算的?我的屏幕分辨率为(1024,600)。 你能帮忙吗? – s3e3
@ s3e3你在控制台中看到的是统一的坐标。 Unity不处理像素,它处理它自己的坐标系。 (0,0)是屏幕的左下角。它不处理屏幕的像素。您可以通过Camera.pixelWidth /.pixelHeight获得屏幕的像素大小。如果你想undist和映射坐标团结的单位看看这里:https://gamedev.stackexchange.com/questions/130047/how-does-the-unity-coordinate-system-map-to-screen-pixels – vmchar