什么是3D坐標(biāo)系?
3D坐標(biāo)系是3D游戲開(kāi)發(fā)與VR開(kāi)發(fā)中的基礎(chǔ)概念。一般而言3D坐標(biāo)系都是使用的笛卡爾坐標(biāo)系來(lái)描述物體的坐標(biāo)信息。
Unity中的幾種坐標(biāo)系
1.World Space世界坐標(biāo)系
3D世界的坐標(biāo),transform.position可以獲得該坐標(biāo)
2.Screen Space屏幕坐標(biāo)系
以像素定義蟀淮,以屏幕左下角為坐標(biāo)原點(diǎn)(0,0)宝踪,右上角為(Screen.width,Screen.height),Z的位置是以相機(jī)的世界坐標(biāo)位置來(lái)衡量的
3.View port Space視口坐標(biāo)
視口坐標(biāo)是標(biāo)準(zhǔn)的和相對(duì)于相機(jī)的。相機(jī)的左下角為(0李皇,0)點(diǎn)削茁,右上角為(1,1)點(diǎn)掉房,Z的位置是以相機(jī)的世界單位來(lái)衡量的茧跋。
4.GUI界面坐標(biāo)系
這個(gè)坐標(biāo)系與屏幕坐標(biāo)系相似,不同的是該坐標(biāo)系以屏幕的左上角為(0卓囚,0)點(diǎn)瘾杭,右下角為(Screen.width,Screen.height)哪亿。
坐標(biāo)系的轉(zhuǎn)換
1.print("世界坐標(biāo)" + obj.transform.position);
2.print("屏幕坐標(biāo)"?+?Input.GetTouch(0).position);
3.print("世界坐標(biāo)→屏幕坐標(biāo)"?+?camera.WorldToScreenPoint(obj.transform.position));
4.print("屏幕坐標(biāo)→視口坐標(biāo)"?+?camera.ScreenToViewportPoint(Input.GetTouch(0).position));
5.print("世界坐標(biāo)→視口坐標(biāo)"?+?camera.WorldToViewportPoint(obj.transform.position));