组件显示的坐标系及其打印坐标点是什么?

组件显示的坐标系及其打印坐标点是什么?

一 坐标系简介1 世界坐标系

可以用transform.position获取

世界坐标系

2 局部坐标系

局部坐标系是相对于父物体来说的:

当2个游戏对象互为父子关系硬件设备音效,那么子物体就会以父物体的坐标点为自身坐标原点

局部坐标系

下面是子物体的Transform组件和打印的坐标结果,可以看出Transform组件显示的坐标是相对于父物体为坐标原点的

子物体的Transform组件

打印结果

3 相机坐标系

根据观察位置和方向建立坐标系。

用次坐标系可以方便判断物体是否在相机前面,以及物体之间先后遮挡顺序unity 直角坐标系 姿态,它会优先渲染离它最近的物体

4 屏幕坐标系

建立在屏幕上的二维坐标系,用来描述像素在屏幕上的位置

以屏幕左下角为坐标原点(0,0)。

右上角为(Screen.width,Screen.height),

void Update () {
       if (Input.GetMouseButtonDown(0))
       {
           //获取游戏界面鼠标左键点击的坐标
           Debug.Log(Input.mousePosition);
       }
}

void Start (){ //获取游戏界面里选中物体的坐标
        Vector3 vc = Camera.main.WorldToScreenPoint(transform.position);
        Debug.Log(vc);
}

5 视口坐标系

视口坐标是标准的和相对于相机的。相机左下角为(0,0)点unity 直角坐标系 姿态,右上角为(1,1)点。

二 坐标系的转换1 全局坐标系转局部坐标系

public GameObject a;
void Start () {
       Debug.Log("this的坐标" + this.transform.position);
       Debug.Log("a的坐标" + a.transform.position);
       //输出的是a-this的坐标
       Vector3 v2 = this.transform.InverseTransformPoint(a.transform.position);
       Debug.Log("全局坐标变局部坐标" + v2);
}

打印结果

2 局部坐标系转全局坐标系

public GameObject a;
void Start () {
        Debug.Log("this的坐标" + this.transform.position);
        Debug.Log("a的坐标" + a.transform.position);
        //输出的是a+this的坐标
        Vector3 v1 = this.transform.TransformPoint(a.transform.position);
        Debug.Log("局部转全局" + v1);
}

打印结果

文章来源:https://www.jianshu.com/p/a44c7b21022b