C# 统一-孩子比父母动作快

C# 统一-孩子比父母动作快,c#,unity3d,parent-child,C#,Unity3d,Parent Child,我使用下面的代码让我的玩家随着移动平台移动,它的工作原理是,它确实让你成为平台的孩子,在平台上移动,但是玩家的移动速度会比平台快。 平台在两个点之间反复向左然后向右移动,但是玩家移动得更快,所以会沿着平台滑动,很明显你可能会因此摔倒 void OnCollisionEnter2D (Collision2D other) { if(other.gameObject.tag == "moving") { transform.parent = other.transform.p

我使用下面的代码让我的玩家随着移动平台移动,它的工作原理是,它确实让你成为平台的孩子,在平台上移动,但是玩家的移动速度会比平台快。 平台在两个点之间反复向左然后向右移动,但是玩家移动得更快,所以会沿着平台滑动,很明显你可能会因此摔倒

void OnCollisionEnter2D (Collision2D other) {
    if(other.gameObject.tag == "moving") {
        transform.parent = other.transform.parent;
    }
}

void OnCollisionExit2D (Collision2D other) {
    transform.parent = null;
} 

现在我认为这段代码很好,因为正如我所说的,你成为了平台的孩子,并继续前进,这就是所有这一切。

本来打算删除这段代码,但我认为最好还是把它留在这里,以防有人有同样的问题


在消除平台和播放器的摩擦后,一切都按预期进行,我可以不按任何键随移动的平台移动。

您的播放器是否可能以帧/秒而不是米/秒的速度移动?如果您移动家长和孩子,他们都有自己的速度,子对象的实际速度是父对象的速度+子对象的速度,如果希望两者以相同的速度移动,只需移动父对象,因为子对象具有“移动”along@Poncho-当只有父母在移动,而我没有提供任何输入时,孩子移动得更快。@mehow-我怎么知道或控制它?如果我只是把一个物体变成别的东西的孩子,你的建议怎么可能呢?