unity set transform parent 不改变player的比例

Unity set transform parent without change player's scale

我正在尝试用活动地板移动我的播放器。当我将玩家的父变换设置为地板变换时,它起作用了。它运行良好,但每一秒,播放器的比例都会发生变化。我可以在不改变播放器比例的情况下设置变换父对象吗?

这是我尝试过的:

    private void OnCollisionEnter(Collision other)
    {
        if (other.gameObject.CompareTag("MovingObject"))
        {
            transform.parent = other.gameObject.transform;
        }
    }

转换中的所有信息都是层次结构中的链接信息。这意味着parent中的变化,直接改变了children。 如果需要保持层级,保持播放器的比例,可以乘以parent中应用的比例的倒数,这样层级中的比例相乘为1,[=中的比例15=] 不受影响。

尝试:

private void OnCollisionEnter(Collision other)
{
    if (other.gameObject.CompareTag("MovingObject"))
    {
        transform.parent = other.gameObject.transform;
        PlayerGameObject.transform.scale = new Vector3(
        PlayerGameObject.transform.scale.x/other.gameObject.transform.x, 
        PlayerGameObject.transform.scale.y/other.gameObject.transform.y,
        PlayerGameObject.transform.scale.z/other.gameObject.transform.z)
    }
}