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  则可以建造
        }
    }