CocosCreator 碰撞识别 基于Group的碰撞识别 如何操作 办法
Cocos3 碰撞组识别问题
有时候我们需要一个物体和多个其他碰撞组碰撞
需要在碰撞事件中进行区分
但是如果我们是用group来进行区分的时候
这个group对应的数字不是group的数字,2的group的次方
比如对于编号为3的碰撞器
那么他的识别的数字应当是2^3 也就是8 才可以被识别
如图所示
这样就可以区分了
注意是次方 而不是直接用数字
/**离开碰撞 */
onEndContact(selfCollider: Collider2D, otherCollider: Collider2D) {
if (otherCollider.group == 16) {
//如果处于可放置状态,但是进入了别人的碰撞体,那就加入到数组
if (this.NowContactUnits.indexOf(otherCollider.node) >= 0) {
let node: Node; //要移除的对象
node = otherCollider.node
//下面这句话 就是让这个数组元素中 条件通过的 就通过 然后先形成一个新的数组 再赋值
this.NowContactUnits = this.NowContactUnits.filter(item => item !== node);
}
if (this.NowContactUnits.length <= 0) {
console.log('可以建造')
this.ChangeBuildState(true)
}
//如果离开了别人的碰撞体 则从数组中移除
//如果数组为0 则可以建造
}
}