Unity3D - transform.position 不起作用



我把这个脚本附加到场景中的猎枪上,这样它就会在层次结构中移动它,使其成为玩家的子级,并重置到0,0,0的位置,但每次位置都是随机的。如果我运行脚本重置位置而不更改父级,则位置将更改为0,0,0:

public void Update()
{
if (Input.GetKeyDown(KeyCode.E))
{
transform.position = new Vector3(0.0f, 0.0f, 0.0f);
transform.SetParent(weaponPosition);
transform.position = new Vector3(0.0f, 0.0f, 0.0f);
}
}

按下E 前启动

按下E 后

请注意,即使是Inspector也会告诉您:您在Inspector中看到的始终是相对于父空间的局部Transform.localPosition,而不是全局/绝对世界空间Transform.position

只有在没有父级的情况下,positionlocalPosition才是相同的。

=>你宁愿使用

transform.SetParent(weaponPosition);
transform.loalPosition = Vector3.zero;

以便将对象放置到父对象的轴心(如果没有,则放置到世界(。

最新更新