子位置与父位置一起移动,但实际上并没有移动(移动平台)



所以在过去的几天里,我一直在研究这个问题,研究和尝试了很多东西,但仍然无法解决这个问题。

我有一个带刚体的玩家和一个带刚性的移动平台。平台在来回移动,我希望玩家在平台上时能留在平台上。

因此,当玩家跳上平台时,平台就变成了它的家长。这很好用,没有问题。

private void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Moving Platform"))
{
transform.parent = collision.gameObject.transform;
}
private void OnCollisionExit2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Moving Platform"))
{
transform.parent = null;
}
}

问题是,由于玩家有一个动态刚体,看起来它的父母的运动不会影响他。我可以看到他的位置在检查员中移动,但在比赛中并没有真正移动。

当我把身体类型设置为运动学时,玩家会呆在平台上,但我在平台上找不到真正移动的方法。所以他基本上会被困在平台上。

有简单的解决办法吗?或者我应该彻底改变我制作这些移动平台的方式。

(顺便说一句,每个动作都用物理处理)

当你移动玩家时,有时即使有很小的余量,它也会脱离碰撞,并会产生奇怪的结果。请尝试Physics2d.OverlapCircle

最新更新