我正在用unity3D制作一个球在地上滚动的游戏。
当我设置单个大接地块并在Unity3D中使用Rigidbody.AddForce()时。球滚动良好。
但是,如果我设置多个小地面积木,则球会在积木边界上意外跳跃。甚至块大小,位置和间隔都完全匹配。
我可以解决这个问题吗?
(我无法冻结球的位置Y。因为球需要重力。)
-编辑-
这是我的代码,通过AddForce()移动球。当我单击时。
bundle install
这是Unity3D的屏幕截图 我放置了3x1x3立方体块,并将所有位置Y设置为0。 没有裂缝或缝隙。
答案 0 :(得分:0)
这可能是由于物理引擎中的错误所致。他们之所以在这里,是因为引擎试图偷工减料以加快处理速度。您可以按照以下步骤来减少计数器的数量(以速度为代价)。首先要使刚体进行碰撞检测连续进行。您也可以尝试打开插值。还有一些更高级的方法可以使物理更新比帧频更多。但我会先尝试更简单的选项。通常足够了。
答案 1 :(得分:0)
转到“编辑”->“项目设置”->“物理”,并使用默认的接触偏移进行播放,也许将其缩小到0.00001,然后尝试一下。另一种冻结y的方法,然后在发生某种情况时可以再次将其解冻。