cullingMask是一个32位int值, 每一位代表一个层,1
表是渲染,0
表示不渲染,通过设置不同的层,可以有选择性的渲染部分场景.
cullingMask=0
时,什么都不渲染,因为是32个0
cullingMask=-1
时, 渲染everything,因为是32个1
位移运算符: 1<<index
大部分都会和1进行位运算, 因为1的二进制是00000000 00000001
,比较特殊
比如
- 只渲染第2层
cullingMask= 1<<2 = 4
即0100
- 只渲染2,3,4层:
cullingMask=(1<<2)+(1<<3)+ (1<<4)=28
, 即0001 1100
常用运算公式
-
渲染除去层x的所有层
camera.cullingMask = ~(1 << x);
-
在原来的基础上关闭层x
camera.cullingMask &= ~(1 << x);
-
在原来的基础上打开层x
camera.cullingMask |= (1 << x);
-
摄像机只显示第x层,y层,z层
camera.cullingMask = 1 << x + 1 << y + 1 << z;
cullingMask &= ~x;
网友评论