【发布时间】:2016-09-17 12:44:59
【问题描述】:
我有一个具有复合对撞机设置的角色(由许多原始对撞机形状设置的对撞机,每个身体部位一个)和一个使用缩放立方体设置的简单地面。立方体在 x 轴上缩放 1000,在 z 轴上缩放 30。事情还处于早期阶段,所以没有昂贵的图形,只有原始形状和场景中的低多边形角色。刚开始一切都很顺利,但有一段时间,在我玩了一段时间后,角色开始掉到地上。有人遇到过这个问题并知道如何解决吗?
【问题讨论】:
-
这种情况最常发生在您陷入建模/连接不良地形的裂缝之间(由于浮点舍入错误)。如果你的“地板”真的是一个单一的固体物体,我接下来要检查的是物理循环是否以足够高的频率运行,以至于玩家在下一个滴答声之前不能掉入物体太远。如果上述所有方法都失败了,我会让你的对撞机稍微变大。
-
我的固定时间步长是 0.02,最大允许时间步长是 0.3333333,这仍然是默认值。可以吗?而且我也意识到这似乎只有在我播放具有高播放时间的动画时才会发生,该动画的播放时间设置为 3。
-
按照您的建议,我已将 Fixed Timestep 调整为 0.002,这快了 10 倍。情况似乎好多了。但是CPU可以吗?正如我听说的那样,减小这个值会对 CPU 性能产生影响。你的推荐值是多少?顺便说一句,你试试这个解决方案吗? (answers.unity3d.com/answers/1244965/view.html)。我试过了,还是不行。
-
该链接对我来说已损坏(访问被拒绝)。在使用浮点数跟踪经过的时间之前,我遇到了(脚本化的)动画问题。随着数字的增加,精度下降,因此动画变得“生涩”。不确定这可能是您的问题。我相信如果表面足够厚以至于您无法完全正确地修剪它,您更有可能获得良好的效果。回复:TimeStep,恐怕没有正确的答案。这是一个完全取决于你的游戏的平衡,但是,如果你仍然遇到问题,听起来低 TimeStep 可能只是掩盖了问题
-
是的,我已经将它增加了一点到 0.005。问题现在不会发生。希望以后再也不会发生这种情况,因为我几乎整天都在解决这个问题@@。顺便说一句,有人建议我应该为我的角色设置物理材料,但我认为没有必要。我想如果我这样做,物理引擎会浪费资源来计算我的角色的摩擦力、弹力,这对我来说不是必需的,对吧?
标签: unity3d game-physics