[Unity][Transform]父物体与子物体坐标偏移导致的问题

一些设定导致 物体的坐标不与 实际物体 的坐标一致。

坐标偏移会导致哪些问题?

1.导航目的地 与实际位置不一致,导致无法到达目的地。

2.敌人物体与角色物体的 实际位置不一致,导致一系列问题。


人物模型导致的坐标偏移的问题

进行一个测试。

1.先创建一个人形模型,带有骨骼的。

2.再创建一个空物体,于Plane物体的子物体,与Zombie物体并列,发现 GameObject物体的坐标为(0,0,0)(Vector3.zero),并且与坐标为0的Zombie物体差不多。

3.4.分别在Zombie人形模型的不同身体部位创建 不同颜色的 Cube方块,为不同身体部位的子物体,并且偏移坐标。

5.使得Zombie为GameObject的子物体,发现GameObject的物体坐标发生偏移。这是为什么。

参考资料1,在编辑器中菜单上面的GameObject-Center On Children,

发现所有的父物体,都是对所有其子物体的坐标进行 中心对其。

解决办法:

1.那么 要使得 父物体 与 子物体的 实际坐标 不发生偏移,就要改变所有在父物体的子物体以及其孙物体的坐标 为(0,0,0)(Vector3.zero);

2.使得所有子物体,每一个对应一个坐标的相加的和始终为(0,0,0)(Vector3.zero)。

例如(1,1,1)(-1,-1,-1)

(1,0,-1)(-1,0,1)


物体自身带的组件导致 坐标偏移。

比如LineRenderer组件,删除该组件即可。

参考资料:

1.在Unity中让一父物体的位置转变成所有子物体的中心位置

2.

3.

猜你喜欢

转载自blog.csdn.net/BuladeMian/article/details/106607971