一个碰撞体同时碰到其它两个碰撞体该怎么处理

image
假如一个箭头 同时碰到两个方框,但只想处理其中一个,该怎么做

两个碰撞必有先后,给箭头加个标志量,处理前先判断标志量,已碰撞直接返回

碰撞分组的话适用吗 ?
https://docs.cocos.com/creator/manual/zh/physics/physics-configs.html?h=碰撞分组值

这个我碰到过,当时的解决方法是代码执行有先后,给个bool变量,如果碰到了就设置,下次不进来,等过碰撞完到下次碰撞之前,再重新赋值

不好意思,分组设置了,不是这个问题

1赞

好像只能这么做了

目前只能这么做了,我有点好奇,官方没想到会有同时碰撞多个的情况嘛,我感觉碰撞回调里打印的other应该是个数组才对

我觉得这正常的吧,底层也不知道你要碰多久,会碰多少个,假设你会碰个几秒钟,你又要在这段时间内对碰撞做相应的操作,它不可能等你碰完后,再把碰到的那些扔到数组发给你,如果一直碰,那它还发不发消息给你了?

好吧 :joy:

其实,箭头节点node.getComponent(cc.Collider).enable = false;也可以让箭头只响应一次,想再次响应,= true就行了

有试过,但是这个方案被pass了,
我记得当时是它两个同时碰撞,设置了enable也会收到两次事件,然后判断它的enable做操作,这种情况下,设置enable的话,底层还要去做一堆相关操作,还不如直接设置变量做判断