Unity3D Transform.position不匹配Debug.Log位置

时间:2017-07-24 13:34:05

标签: c# unity3d

当我将GameObject的位置记录到控制台时,控制台中的值与检查器中的值不同。

因此,每当我尝试在点击时移动对象时,它就会移动到一个疯狂的位置。我做错了吗?

Image for more detail

2 个答案:

答案 0 :(得分:6)

这是因为您在检查器中设置的位置是本地位置(即相对于父项的位置),而transform.position为您提供绝对位置(相对于世界原点的位置)。

要获得本地排名,您可以使用transform.localPosition

答案 1 :(得分:2)

在“检查器”窗口中,您只能看到游戏对象的本地转换。 虽然Debug.Log在全球范围内编写了gameobject的全球位置。 尝试将代码更改为:

Debug.Log(transform.localPosition);