Unity位运算符和Layers

原文:https://www.cnblogs.com/leeplogs/p/9133824.html

按位运算符:与(&)、非(~)、或(|)、异或(^)、<<(左移)、>>(右移)。位运算符主要用来对二进制位进行操作。

逻辑运算符:&&、||、!。逻辑运算符把语句连接成更复杂的复杂语句。

 

与运算符:只有两个位都是1,结果才是1;

或运算符:只要两个位有一个是1,结果就是1;

非运算符:如果位为0,结果是1,如果位为1,结果是0;

异或运算符:两个操作数的位中,相同则结果为0,不同则结果为1;

左移运算符<<:左移表示乘以2,左移多少位表示乘以2的几次幂;

右移运算符>>:移动多少位表示除以2的几次幂。

 

Unity是用 int32来表示32个Layer层,int32用二进制来表示一共有32位。

0000 0000 0000 0000 0000 0000 0000 0000

31                    0

 

eg:

(1)LayerMask mask = 1<<2; ----开启Layer2

其中 <<左边的 1表示有[开启],0表示没有该layer[忽略] 。右边的2表示左移2位即是 layer2层的位置。

(2)LayerMask mask = 1 << 0 | 1 << 2;; ----开启layer 0和layer 2

(3)LayerMask mask = 1 << 0 | 0 << 2 ----开启Layer0 并关闭 Layer2

(4)打开Npc层,变1 或 运算符

camera.cullingMask |= 1 << LayerMask.NameToLayer("Npc"); camera.cullingMask = (int) 1<<LayerMask.NameToLayer("Npc");//写法二

(5)关闭Npc层,变0 按位与 & 按位取反 ~

camera.cullingMask &= ~(1 << LayerMask.NameToLayer("Npc"));

(6)开关Npc层,按位异或 ^

camera.cullingMask ^= 1 << LayerMask.NameToLayer("Npc");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值