枚举的位运算
1.先通过|运算符,获得一个合并的集合结果
image.png
2.将这个结果,通过和某个枚举值的&运算,进行比较判断,由于它二进制的运算,不是1就是0,所以,假如结果为0,那么这个枚举值就不在结果的列表里;反之,则在列表里。
https://www.cnblogs.com/RoyYu/p/3904379.html
https://www.cnblogs.com/sunchong/p/4442352.html
image.pngLayerMask位运算
1 << 2 左移2位,得到数字4
1 << 16 左移16位,得到数字65536
0 << ? 都得0
然而layermask不是这样算的,它是没有换算成十进制的,是使用了int32,存储32个1/0。
如:
1 << 2 : 100 前面补上29个0
1 << 5 : 100000 前面补0
LayerMask m = (1<<2) | (1<<5) : 100100 前面补0
(m & (1 << 2)) == (1 << 2),则集合m中包含(1<<2)。
网友评论