我把这个脚本附加到场景中的猎枪上,这样它就会在层次结构中移动它,使其成为玩家的子级,并重置到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
!
只有在没有父级的情况下,position
和localPosition
才是相同的。
=>你宁愿使用
transform.SetParent(weaponPosition);
transform.loalPosition = Vector3.zero;
以便将对象放置到父对象的轴心(如果没有,则放置到世界(。