首页 > 代码库 > U3D屏幕坐标,世界坐标,像素坐标之间的关系

U3D屏幕坐标,世界坐标,像素坐标之间的关系

U3D中,屏幕坐标和世界坐标单位一样,二者之间是直接的一一对应关系,不受屏幕分辨率影响。默认情况下屏幕空间画布的左下角坐标是世界原点(0,0,0),这种情形下,世界空间的点(1920,1080,任何值)就对应屏幕上的点(1920,1080,0)。

sprite的大小是由实际图片的像素确定的,如512X512的图片放到sprite上,sprite的大小是5.12X5.12。即:默认情况下3D空间中1=100像素,这个是可以在每张图片导入设置中设定的。

由此,可见,屏幕分辨率代表的是游戏窗口能看到的世界空间的范围。比如1024X768是说游戏窗口可以看到世界空间的1024个单位长,768个单位宽的范围。

而比例分辨率是则有所不同,如4:3模式下,取系统桌面分辨率的高作为游戏屏幕的宽,长=宽X4/3。

因此,UI的世界坐标和3D空间中任何物体的3D坐标性质是一样的。取UI的position减去它所在画布左下角的position就得到了UI的屏幕绝对坐标。

 分辨率改变时,UI坐标一般都会改变。除了一种情况:某UI所在层级中所有父结点坐标都是相对父结点左下角的,该UI也必须时相对其父结点左下角的。原理是分辨率改变时只是在增大缩小画布尺寸,而画布左下角永远固定在原点(屏幕空间U)。

截图中下:

技术分享

U3D屏幕坐标,世界坐标,像素坐标之间的关系