总结
先说anchoredPosition、anchoredPosition3D,它们表示同一位置的坐标,区别在于前者是二维向量,后者是三维向量
localPosition 是子物体轴点
相对于 父物体轴点
的坐标
anchoredPosition是子UI物体轴点
相对于 父物体上它的锚点
的坐标
(“相对于”是说子物体的点,以父物体的点为坐标原点,的坐标)
举例
(公司电脑上传不了本地Unity截图,回去的时候再作图)
Debug.Log("localPosition——" + transform.localPosition);
Debug.Log("anchoredPosition——" + transform.GetComponent<RectTransform>().anchoredPosition);
Debug.Log("anchoredPosition3D——" + transform.GetComponent<RectTransform>().anchoredPosition3D);
父物体:白色Image 坐标(0,0,0)
子物体:黑色Image 坐标(200,0,0)
子物体的锚点,默认是父物体的中心点——默认轴点Pivot(0.5,0.5)时,以上代码的结果
子物体的锚点,改为父物体左上顶点时,以上代码的结果
当把父物体的轴点,也设为左上顶点——Pivot(0,1)时
结论
UGUI组件,Inspector视图Rect Transform的PosXYZ——显示的是anchoredPosition,而非localPosition