cocos creator 3d 物理引擎分组掩码的使用(group和mask)

1、引擎默认情况下,group = 1,mask = -1。假如你需要比较精细的分组,最好不要使用默认值。
2、如下代码块说明了使用方法,

this.plane.setGroup(1 << 0);    //默认分组为0

this.collider.setGroup(1 << 1); //设置分组layer = 1
this.collider.setMask((1 << 2) + (1 << 0));  //碰撞层:layer = 2,layer = 0

this.collider2.setGroup(1 << 2);//设置分组layer = 2
this.collider2.setMask((1 << 1)+ (1 << 0));//碰撞层:layer = 1

this.collider3.setGroup(1 << 0); //设置分组layer = 0,默认和所有layer碰撞

3、分组使用

1)表达式依赖位运算,javascript中位运算的操作数是32位的,并且最后一位是符号位,为避免超出运算范围,建议组的范围为[0, 31)。
2)建议使用node节点的layer属性值定义group值。
3)若需要忽略自身group的碰撞,只需将group设置为非0,mask不添加该group值即可。

4、掩码的使用(摘自官方API),掩码可以根据分组进行定义,例如以下示例:

定义一个只检测Group1的掩码const maskForGroup1 = PHY_GROUP.Group1;
定义一个可检测Group0和Group1的掩码const maskForGroup01 = PHY_GROUP.Group0 + PHY_GROUP.Group1;
定义一个所有组都不检测的掩码const maskForNone = 0;
定义一个所有组都检测的掩码const maskForAll = -1;

5、项目超链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值