首页 > 解决方案 > 防止对撞机在地形中发生故障

问题描述

我正在使用地形Unity 2019.2.1f1和带有网格对撞机的洞穴的自定义网格。

我的角色有一个比洞穴入口大得多的胶囊对撞机应该无法进入。但由于两个对撞机的圆度,他可以在洞穴中生效,通过地形对撞机发生故障。

我认为它的速度并不过分,我正在移动角色rb.MovePosition()FixedUpdate()并将其刚体碰撞检测设置为连续推测尝试了所有“连续”模式

在下面的动画中,您可以看到洞穴的网格和角色周围的胶囊碰撞器。

我怎样才能防止这种情况发生?我如何对 Unity 说:“我希望对撞机坚如磐石而不是棉花糖”?

collider_glitch

标签: unity3dcollision-detectiongame-development

解决方案


Unity中的碰撞器坚如磐石的。他们没有任何软物理能力,他们唯一会相互扭曲的时刻就是你强迫他们这么做的时候。

在这里,您将通过强制设置刚体位置到一个不可能的位置。尽管空间不足,游戏仍会尽力适应您的刚体。

你可以

  • 只使用力和速度。您可以简单地将速度设置为您选择的方向,并在您停止移动时将其设置为 0,或者使用AddForce,这基本上是相同的。

  • 继续使用MovePosition,但使用SphereCastorCapsuleCast来检查您是否有足够的空间先移动。


推荐阅读