还是关于物理引擎方面的问题。。大佬们来指点下

官方文档里给的onEndContact方法只在碰撞结束时调用一次,但是为什么我这边调用了两次?是不是在使用这个方法时需要注意些什么?

商業工作流內引擎不完善太多。這種踩雷多了人都會很累。
要麼看源代碼找找觸發點。或者自己強行拋出錯誤查看兩次報錯產生堆棧。

要麼無視cocos物理,直接引入第三方box2d,nape,然後同步第三方物理引擎內物體矩陣到cocos節點矩陣
(node 沒有直接矩陣設置方法,公有方法只能分開設置x y anchorX anchorY rotation)

两个碰撞体 每个都会当作selfcollider 调用一次

那应该怎么避免这种情况呢? 我想要实现的功能是触发这个回调后会给result节点新加一个子节点,为了绕开这个问题 ,现在我是加了个子节点的判断,如果存在就不再新加子节点了。。。有没有其他办法呢?最好是针对引擎这块的解决方案

都是根据 tag 写逻辑啊

调用的两次都是同一个selfcollider

问题不是出在这 我就是根据tag写的 。。

我也写了一组碰撞节点,为了避开这个问题,我将每个节点初始化时设定一个递增id,所有的碰撞回调中不涉及自身修改的都只有两者中id较小的执行。

请问楼主解决了吗?如何解决的?
我也遇到这个问题了,物理世界中每次碰撞时播放一个音效,但是实际每次碰撞回调会调用多次,速度越快调用次数越多。
仔细看了一下文档,碰撞系统中的碰撞回调每次只调用一次,但是物理系统回调会调用多次,很无奈。
不知道该怎么弄了。。。:joy:

物理碰墙多次回调的问题解决了吗?
我又给物理碰撞器上在加个普通的碰撞器,用了普通碰撞器的回调. 这样解决的