繁体   English   中英

Unity3D - transform.position 不起作用

[英]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);
        }
}

在按 E 之前开始

按E后

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

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

=> 您想宁愿使用

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

为了将 object 放置到父级(或世界,如果没有)的 pivot。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM