[英]Unity3D - transform.position doesn't work
我将这个脚本附加到现场的霰弹枪上,这样它就会在层次结构中移动它成为玩家的孩子,并将 position 重置为 0,0,0,但 position 每次都是随机的。 如果我运行脚本来重置 position 而不更改父级,则 position 将更改为 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);
}
}
您会注意到,即使 Inspector 也会告诉您:您在 Inspector 中看到的始终是相对于父级局部空间的局部Transform.localPosition
,而不是全局/绝对世界空间Transform.position
!
只有在没有父母的情况下, position
和localPosition
才相同。
=> 您想宁愿使用
transform.SetParent(weaponPosition);
transform.loalPosition = Vector3.zero;
为了将 object 放置到父级(或世界,如果没有)的 pivot。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.