unity中layers有固定32个,设置CullingMask可以理解成赋值一个32长度的二进制数字,0是关1是开。
全部关闭:0(全部都是0所以全部都是关闭的,000000……0000)
全部开启:-1或者~0 (取反,相当于全部都是1,111111……1111)
只开启第3个:1<<2(默认是在第1位,然后左移了两位,……000100,因为向左移,所以1右侧补两个0)
开启第1、3、4个:1|1<<2|1<<3 也可以写成1 + (1 << 2) + (1 << 3)
开启除了第1个:~1(000……0001变成了111……1110)
开启除了第3个:~(1<<2)
在原来的基础上累加第3个:Camera.main.cullingMask |= 1 << 2
在原来的基础上去掉第3个:Camera.main.cullingMask &= ~(1 << 2)
用乘法的意思是:111……111*111……011,相当于是让第3位变成0,所以就去掉了第3位
注意:可以不确定层级的索引可以在Project Setting中查看,避免写错