Transform.position在代码和编辑器中有所不同

时间:2017-05-24 05:01:12

标签: unity3d

我正在尝试将我的玩家的位置设置为我场景中立方体的位置。

我使用以下函数执行此操作,该函数在选择对象时被调用:

public void PickCube ()
{
    Debug.Log(this.gameObject.transform.position); //this is different from the values in the editor
    Player p = GameObject.FindGameObjectWithTag ("Player").GetComponent<Player> ();
    p.SetPosition (gameObject.transform.position); //put the player at this cube
}

但是,我在场景中的立方体位置与我试图通过gameObject.transform.position获得的位置不同:

这是我在编辑器中看到的位置:

enter image description here

这是Debug.Log返回的位置:

(25.0, -6.9, 20.5)

为什么我在编辑器和代码中获得不同的职位? 我调查了全局与本地位置,gameObject.transform.position.normalized,但这些都不是问题或解决方案。

更新

当我Debug.Log(gameObject.name)时,它会返回脚本“LevelCube”的名称。我认为gameObject应该是脚本所附加的对象吗?

1 个答案:

答案 0 :(得分:0)

1。)只需使用(this).transform.position而不是你的函数

2.如果问题仍然存在,请尝试使用transform.localPosition