什么是3D坐标系?
3D坐标系是3D游戏开发与VR开发中的基础概念。一般而言3D坐标系都是使用的笛卡尔坐标系来描述物体的坐标信息。
Unity中的几种坐标系
1.World Space世界坐标系
3D世界的坐标,transform.position可以获得该坐标
2.Screen Space屏幕坐标系
以像素定义,以屏幕左下角为坐标原点(0,0),右上角为(Screen.width,Screen.height),Z的位置是以相机的世界坐标位置来衡量的
3.View port Space视口坐标
视口坐标是标准的和相对于相机的。相机的左下角为(0,0)点,右上角为(1,1)点,Z的位置是以相机的世界单位来衡量的。
4.GUI界面坐标系
这个坐标系与屏幕坐标系相似,不同的是该坐标系以屏幕的左上角为(0,0)点,右下角为(Screen.width,Screen.height)。
坐标系的转换
1.print("世界坐标" + obj.transform.position);
2.print("屏幕坐标" + Input.GetTouch(0).position);
3.print("世界坐标→屏幕坐标" + camera.WorldToScreenPoint(obj.transform.position));
4.print("屏幕坐标→视口坐标" + camera.ScreenToViewportPoint(Input.GetTouch(0).position));
5.print("世界坐标→视口坐标" + camera.WorldToViewportPoint(obj.transform.position));