【BUG反馈】2D物理系统同时碰撞2个物体,只收到1次碰撞回调

  • Creator 版本: 3.7.2

  • 目标平台: 网页(Chrome)

  • 重现方式:见Demo

  • 编辑器操作系统: Win10

  • 重现概率: 100%


2D物理系统同时碰撞2个物体,只收到1次碰撞回调。
物理分组、碰撞监听等等初始设置已经设置好。


红框内为必现的测试数据。

Demo如下:
Physics2D_BugDemo.zip (30.3 KB)

可能就是没碰撞到两个物体。
我把你红框处的代码删了,把小球放在离两个物体更近的地方,然后鼠标点击两个白色矩形物体中间的缝隙处,就很容易触发了。

保留红框中的测试数据,可以看看小球的运行轨迹:如果没有碰撞到Brick,只碰到了左侧的Wall,小球应该向右上方反弹。
只有撞到了Brick,小球的才会被反弹到下方。

所以,小球撞到了Brick,物理系统也处理了此次碰撞,但没有回调。

只有在特定的角度,才会没有碰撞回调。而这种情况,很容易被试出来。

你 demo 上 brick 也是有触发的,只是那个角度触发的刚好是 END_CONTACT :sweat_smile:

是的,是触发到END_CONTACT了,我可以再额外监听这个事件来解决我的问题。

但BEGAN_CONTACT回调呢?希望确定能有回调。

这个问题重新看了下,确实如你所说,在特定角度存在问题。此问题可能是 box2d 引擎自身存在的问题。目前这个问题可以暂时通过将小球的 ui 大小修改为 36 * 36,然后圆形碰撞盒半径设置为 18 ,这样可以触发所有回调。box2d 的问题我们会继续处理,感谢反馈。