因为2D的物理碰撞没法在回调里面立即销毁,需要延迟一帧,所以偶尔会出现碰撞回调触发两次的问题,这个问题大家怎么解决的?望好心人告知。
我通常是加一个lock:boolen
嗯,差不多,我也是直接加个条件,把错误的触发排除。 
我在主角碰撞里创建了全局变量 private lastEnemy;用来记录上一个碰撞节点。
然后在碰撞回调里判断当前碰撞节点是否等于上一个,不等于就重新赋值。
if (otherCollider.node == this.lastEnemy) {
return;
}
this.lastEnemy = otherCollider.node;