Unity中的坐标系主要可以分为
一、世界坐标系和局部坐标系
3D坐标系分为左手坐标系和右手坐标系如下图,Unity3d中的坐标系是左手坐标系,局部坐标系是以父物体为参照的坐标系。
获得物体世界坐标函数: transform.position
获得物体局部坐标函数: transform.position
二、屏幕坐标系
屏幕坐标系就是电脑或者手机上鼠标或手指点击到的坐标,以像素为单位,左下角是(0,0),右上角是(Screen.Width,Screen.Height),一般开发中是Ugui或者Ngui的坐标系。
获得鼠标点击坐标函数:Input.mousePosition
获得手指点击坐标函数:Input.GetTouch(0).positon
三、视口坐标系
视口坐标是Unity3d相机上的坐标系。
获得鼠标点击坐标函数:Input.mousePosition
四、坐标系之间的转换
camera为场景中的camera对象。
世界坐标→屏幕坐标:camera.WorldToScreenPoint(transform.position);
世界坐标→视口坐标:camera.WorldToWorldPoint(transform.position);
屏幕坐标→世界坐标:camera.ScreenToWorldPoint(Input.GetTouch(0).positon);
屏幕坐标→视口坐标:camera.ScreenToViewportPoint(Input.GetTouch(0).position);
视口坐标→屏幕坐标:camera.ViewportToScreenPoint();
视口坐标→世界坐标:camera.ViewportToWorldPoint();