局部坐标 && 世界坐标 的区别
1. 官方文档介绍
1.1 Transform.Position
- 当前物体在世界空间中的位置,即世界坐标,(按分析)不会受父物体的影响。
1.2 Transform.localPosition
- 当前物体相对于父物体的位置,即相对位置坐标,(按分析)会受到父物体的影响。
- 注意!!!
在unity的Hierarchy面板中,所显示的position为localPosition,对于无父物体的物体而言,其代表世界坐标(其父亲为世界坐标轴),对于有父物体的物体而言,则表示两者的相对位置。
2 问题
2.1 Position真的不会受到父物体的影响吗
-
在Unity中构造两个物体,有父亲的为
hasfa
,没有父亲的为nofa
-
测试代码如下
public class position_test : MonoBehaviour { public GameObject nofa; public GameObject hasfa; public Transform standard; // Use this for initialization void Start () { //为两个物体的position赋值 nofa.transform.position = standard.position; hasfa.transform.position = standard.position; } // Update is called once per frame void Update () { } //用于标定位置 private void OnDrawGizmos() { Gizmos.color = Color.blue; Gizmos.DrawSphere(standard.position, 0.008f); } }
-
代码运行后结果:
两个物体重合,表示position的确代表物体的世界坐标