untiy中的坐标系

坐标系分为世界坐标和局部坐标

1.世界坐标即为物体与相机之间的相对位置
2.局部相对坐标。如果有子物体的话,子物体的坐标就是局部坐标,也就是相对于父物体的相对位置。如果没有子物体的话,他的世界坐标系和局部坐标是相等的。

然而还有另外一种分法

unity3d中的屏幕坐标系 是以 屏幕 左下角为(0,0)点 右上角为(Screen.Width,Screen.Height)

鼠标位置坐标与屏幕坐标系一致

视口坐标是以摄像机为准 以屏幕的左下角为(0,0)点 右上角为(1,1)点。

绘制GUI界面时使用的坐标是以 屏幕 的左上角为(0,0)点 右下角为(Screen.width,Screen,Height)

经常会用到 某个物体的世界坐标到屏幕坐标的转化然后再屏幕上绘制出这个物体的代表性图片

是这样做的

1、Vector3 ScreenPos=Camera.WorldToScreenPoint(trans.Position);

2、GUIPos=new Vector3(ScreenPos.x,Screen.height-ScreenPos.y,0);

然后按照这个坐标绘制图片就可以了

下面是各种坐标系之间的转换

世界坐标→屏幕坐标:camera.WorldToScreenPoint(transform.position);这样可以将世界坐标转换为屏幕坐标。其中camera为场景中的camera对象。

屏幕坐标→视口坐标:camera.ScreenToViewportPoint(Input.GetTouch(0).position);这样可以将屏幕坐标转换为视口坐标。其中camera为场景中的camera对象。

视口坐标→屏幕坐标:camera.ViewportToScreenPoint();

视口坐标→世界坐标:camera.ViewportToWorldPoint();

看了文章N多,还是实操学习的快。在UGUI中,RectTransform上显示的坐标与锚点的位置有关。

Paste_Image.png

表示他的锚点在界面的Y方向的中点,并且靠右边289像素

再来举一个例子

Paste_Image.png

表示距离下面23像素,在X的中点。

你可能感兴趣的:(untiy中的坐标系)