Unity3d 统一:使用BoxCollidater2D浮动的二维字符

Unity3d 统一:使用BoxCollidater2D浮动的二维字符,unity3d,Unity3d,我对unity还很陌生,我用我的角色和场地搭建了一个简单的场景。我在角色中添加了一个rigidibody2d和一个BoxCollider2D,在地面添加了另一个BoxCollider2D。碰撞器的边界与角色/地面的边界完全吻合,但当我点击“播放”时,我的角色并没有落在地面上,而是停下来并在上面浮动几个像素 我见过很多类似的问题,但解决方案对我来说并不奏效(或者我没有正确理解它们,正如我前面提到的,我对Unity是新手,这是我的第一场比赛) 这就是漂浮物的样子: 很明显,我可以通过将上边界降低到

我对unity还很陌生,我用我的角色和场地搭建了一个简单的场景。我在角色中添加了一个
rigidibody2d
和一个
BoxCollider2D
,在地面添加了另一个
BoxCollider2D
。碰撞器的边界与角色/地面的边界完全吻合,但当我点击“播放”时,我的角色并没有落在地面上,而是停下来并在上面浮动几个像素

我见过很多类似的问题,但解决方案对我来说并不奏效(或者我没有正确理解它们,正如我前面提到的,我对Unity是新手,这是我的第一场比赛)

这就是漂浮物的样子:

很明显,我可以通过将上边界降低到地面实际边界以下来“修复”这个问题,如下所示:

但这显然不是一个好的解决方案,我仍然想知道是什么导致了这个bug,以及如何修复它。

也许gap的大小是:

设置碰撞器的“接近距离”值,以将碰撞器视为处于接触状态,即使碰撞器实际上未处于接触状态。距离小于其contactOffset值之和的碰撞器将生成接触。这允许碰撞检测系统预测性地强制执行接触约束,即使对象稍微分离。 警告:将此值减得太小可能会削弱Unity计算连续多边形碰撞的能力。相反,将该值增加太多可能会为顶点碰撞创建瑕疵

您可以在“编辑>项目设置>物理2D”中找到它。

可能gap的大小为:

设置碰撞器的“接近距离”值,以将碰撞器视为处于接触状态,即使碰撞器实际上未处于接触状态。距离小于其contactOffset值之和的碰撞器将生成接触。这允许碰撞检测系统预测性地强制执行接触约束,即使对象稍微分离。 警告:将此值减得太小可能会削弱Unity计算连续多边形碰撞的能力。相反,将该值增加太多可能会为顶点碰撞创建瑕疵


您可以在编辑>项目设置>物理2D中找到它。

谢谢,这就是问题所在!谢谢,这就是问题所在!