Unity3d 平台速度更新后,如何阻止上升平台推送玩家

Unity3d 平台速度更新后,如何阻止上升平台推送玩家,unity3d,game-physics,rigid-bodies,Unity3d,Game Physics,Rigid Bodies,我目前正在开发我的第一款Unity2D游戏,遇到了一个无法找到有效解决方案的问题。游戏是一个下落的平台成型器,我将其设置为平台以2的速度向上移动,除非玩家触摸一个看不见的对撞机,使平台的速度增加到10,从而产生自由下落的错觉。问题是,一旦速度被更新,上升平台的力量会在冲击时向上击打玩家,产生意外的反弹效果。这似乎是一个简单的问题,但我还没有解决这一问题后,花了过去几天的混乱与代码和刚体设置的球员和平台 我决定测试一下,如果我从一开始就将平台的速度设置为10,这样它就不会在游戏中更新,奇怪的是,玩

我目前正在开发我的第一款Unity2D游戏,遇到了一个无法找到有效解决方案的问题。游戏是一个下落的平台成型器,我将其设置为平台以2的速度向上移动,除非玩家触摸一个看不见的对撞机,使平台的速度增加到10,从而产生自由下落的错觉。问题是,一旦速度被更新,上升平台的力量会在冲击时向上击打玩家,产生意外的反弹效果。这似乎是一个简单的问题,但我还没有解决这一问题后,花了过去几天的混乱与代码和刚体设置的球员和平台

我决定测试一下,如果我从一开始就将平台的速度设置为10,这样它就不会在游戏中更新,奇怪的是,玩家不会反弹。问题似乎在于游戏过程中更新的速度。运动员的身体类型是动态的,平台的身体类型是运动学的

我决定测试一下,如果我从一开始就将平台的速度设置为10,这样它就不会在游戏过程中更新,而且奇怪的是,玩家不会反弹,会发生什么。问题似乎在于游戏过程中更新的速度

到目前为止,我已经尝试:

显著增加玩家的质量-绝对没有效果

在碰撞时将玩家的刚体.velocity.y设置为0-无

在碰撞时将玩家的身体类型短暂更改为运动学,然后将其设置回动力学-否


我完全看不出为什么会发生这种情况,但尽管我做了很多尝试,我想一定有一个非常简单的解决方案。任何建议都将不胜感激。

如果我理解正确,您将处理移动平台。如果是,您可以使用
void-OnCollisionEnter2D(Collision2D-collision){player.SetParent(collision.transform);}
将播放器临时设置为平台的父对象,并使用
void-OnCollisionExit2D对其进行解析(碰撞2D碰撞){player.SetParent(null);}
。这样,玩家将留在移动平台上。感谢您的回复,这似乎是一个很好的解决方案,但似乎也不起作用。我已经确认,只要玩家触碰平台,它确实会成为平台的孩子,但平台仍然会在碰撞时击退玩家。这太奇怪了。