我正在尝试将我的玩家的位置设置为我场景中立方体的位置。
我使用以下函数执行此操作,该函数在选择对象时被调用:
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获得的位置不同:
这是我在编辑器中看到的位置:
这是Debug.Log返回的位置:
(25.0, -6.9, 20.5)
为什么我在编辑器和代码中获得不同的职位?
我调查了全局与本地位置,gameObject.transform.position.normalized
,但这些都不是问题或解决方案。
更新
当我Debug.Log(gameObject.name)
时,它会返回脚本“LevelCube”的名称。我认为gameObject应该是脚本所附加的对象吗?
答案 0 :(得分:0)
1。)只需使用(this).transform.position而不是你的函数
2.如果问题仍然存在,请尝试使用transform.localPosition