Physics2D.Linecast中的参数layerMask

运用:

Physics2D.Linecast(start,end,1<<LayerMask.NameToLayer("Ground"));
1.首先引入'|''&''~'的概念 
与(交集):10000001 & 10000100 == 10000000 

或(并集):10000001 | 10000100 == 10000101 

非(反转):10000001 == ~01111110 

2.int myLayerMask = 1 << curLayer; 
等式右侧 curLayer 代表Inspector/Layer中的某一层 
等号左侧是通过一个数来保存多个层的信息 
他是怎么做到的呢? 
其实是用 myLayerMask = 00000000 方式来保存的 
即 myLayerMask = 1 << 3 ---> myLayerMask == 00001000 
这时层级中的第3层被开启,其余层处于关闭状态 
另外,需注意的是,层的序号是从0开始计算的 
因此,上面的操作相当于使用二进制方法进行一对多表现方式的转化过程 

3.实例讲解 
有了上面铺垫,我们就可以轻松的对多个Layer进行开关了 
1)开启1、2层 
camera.cullingMask = (1 << 1) | (1 << 2); 
2)开启除2层外的所有层 
camera.cullingMask = ~(1 << 2); 
3)开启除1、2、4层外的所有层 
camera.cullingMask = ~((1 << 1) | (1 << 2) | (1 << 4));

 

转载于:https://www.cnblogs.com/kingBook/p/5294993.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值