球在统一3d中意外跳动

时间:2018-08-11 04:19:42

标签: unity3d

我正在用unity3D制作一个球在地上滚动的游戏。

当我设置单个大接地块并在Unity3D中使用Rigidbody.AddForce()时。球滚动良好。

但是,如果我设置多个小地面积木,则球会在积木边界上意外跳跃。甚至块大小,位置和间隔都完全匹配。

我可以解决这个问题吗?

(我无法冻结球的位置Y。因为球需要重力。)

enter image description here

-编辑-

这是我的代码,通过AddForce()移动球。当我单击时。

bundle install

enter image description here

这是Unity3D的屏幕截图 我放置了3x1x3立方体块,并将所有位置Y设置为0。 没有裂缝或缝隙。

2 个答案:

答案 0 :(得分:0)

这可能是由于物理引擎中的错误所致。他们之所以在这里,是因为引擎试图偷工减料以加快处理速度。您可以按照以下步骤来减少计数器的数量(以速度为代价)。首先要使刚体进行碰撞检测连续进行。您也可以尝试打开插值。还有一些更高级的方法可以使物理更新比帧频更多。但我会先尝试更简单的选项。通常足够了。

答案 1 :(得分:0)

转到“编辑”->“项目设置”->“物理”,并使用默认的接触偏移进行播放,也许将其缩小到0.00001,然后尝试一下。另一种冻结y的方法,然后在发生某种情况时可以再次将其解冻。