作为移动平台的父对象时,角色移动缓慢



我正在Unity开发一款2D平台游戏。我的角色通过将速度应用于刚体来移动,并按照我希望的方式进行精确控制。

当角色在移动的平台上时,我将角色作为移动平台的父对象,以便在平台移动时角色保持在移动平台上。这是移动平台上的代码

private void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.tag == "Player")
{
collision.collider.transform.SetParent(transform);
}
}

private void OnCollisionExit2D(Collision2D collision)
{
if (collision.gameObject.tag == "Player")
{
collision.collider.transform.SetParent(null);
}
}

我还使用transform.position将平台从一个位置移动到另一个位置。

问题来了。只有当平台的速度为0时,角色才能完美工作。如果平台在移动,角色在平台上行走时会像鼻涕虫一样移动。关于如何解决这个问题,有什么想法吗?或者有没有一种方法可以让角色坐在移动的平台上,而不需要养育它?

编辑:我早些时候忘了把这个包括在内。我测试了一下物理材料是否会产生影响。我在角色、平台上同时包含了一个0摩擦物理材料。这些组合没有任何区别。当平台移动时,玩家仍然行动迟缓。

如果用力和刚体移动角色,则层次结构和谁是父对象不会产生太大影响,因为移动是由力提供的,这与物理有关。如果你在代码中操作移动的转换,这将很重要,但如果移动是由力产生的,我认为不是。我会检查玩家和平台的物理材料的摩擦,以定义元素相互尊重的运动。

花了很长时间才找到答案,但我想我找到了。将平台移动到FixedUpdate而不是Update可以解决此问题。

最新更新