更改Physics.defaultContactOffset是否会对性能产生重要影响?

时间:2018-11-01 10:10:30

标签: unity3d

和往常一样,该文档缺少一些我们必须从其他地方收集的信息:Physics.defaultContactOffset

Physics.defaultContactOffset被碰撞检测系统用来预测性地执行接触约束。

Unity说明您应该使用1单位= 1米进行物理模拟。

我需要很多小球和立方体:10厘米宽。因此0,1是“单位”。

他们不说的是,当您进行小规模工作时(我正在使用0.1m宽度= 10cm的对象),您必须将Physics.defaultContactOffset更改为小于默认值。

因此,我的问题是:Physics.defaultContactOffset对于计算是否重要,也就是说,如果我将其更改为非常小的值,是否会对性能产生负面影响?

我必须将其从0.001更改为0.00001才能获得可接受的碰撞检测系统,我担心会对性能产生负面影响。

1 个答案:

答案 0 :(得分:2)

Unity3D documentation开始,使用默认联系人偏移量

  

使用此设置碰撞检测系统用于   产生碰撞接触。该值必须为正,如果已设置,则为   太接近零,会导致抖动。设置为0.01   默认。碰撞器只有在距离一定的情况下才会产生碰撞接触   小于其接触偏移值的总和。

因此,我们可以假设物理引擎正在计算对撞机之间的距离,并检查该距离是否算作碰撞。我认为对于性能而言,它并不重要,因为无论如何都要进行计算。

说了这么多,Unity3d物理引擎在微小物体上的效果并不理想,因此最好将球体缩放到1个单位,然后对其他所有物体进行缩放以进行补偿。您很可能会遇到这些小型对撞机的问题。