Unity中Camera参数—Culling Mask详解

**

Culling Mask**

如下图所示:
在这里插入图片描述

显示层级如下:

在这里插入图片描述

应用:

Culling Mask :主要是相机针对不同层级的物体进行渲染的操作(想让相机渲染哪个层就勾选哪个层)

层级介绍:

unity中的层前7个被unity锁定,由低到高分别是nothing/everything/default/transparentFX/ignore raycast/water/UI
从第8个到第31个可以自己设置进行起名字添加或删减的

功能 :

我们可以通过脚本对相机层级进行控制,然后进行针对显示(可以用做多个物体的自由选择显示等)
脚本方面:
说明:层级索引是int类型的,我们可以通过int32对layer层级进行访问和调用
**

具体脚本如下:

1.用于只渲染某一层
_camera.cullingMask = 1<<8; //cube 只渲染第八层
_camera.cullingMask = 1<<9; //sphere 只渲染第九层
_camera.cullingMask = 1<<10; //capsule 只渲染第十层
只渲染第8、9、10层
_camera.cullingMask = (1 << 10) + (1<<9) +(1<<8);

2.渲染所有层
_camera.cullingMask = -1; //对应 everything

3.任何层都不渲染
_camera.cullingMask = 0; //对应 nothing

4.在原来基础添加某一层
_camera.cullingMask |= (1 << 10); //在原来的基础上增加第10层

5.在原来基础减去某一层
_camera.cullingMask &= ~(1 << 10); //在原来的基础上减掉第10层
6.渲染除了某一层外的所有层
_camera.cullingMask = ~(1 << 10); //渲染除第10层之外的其他所有层
**

代码注意事项:

**camera.cullingMask = 1 << 0+1 << 9; 错误的
camera.cullingMask = (1 << 0)+(1 << 9);正确的

**注:**一定记得加括号,否则无效果

延伸:可以通过层名去打开对应的层:
camera.cullingMask = (1 << 0) + (1 << LayerMask.NameToLayer(“T”));
同理如上······操作跟上面一样

  • 19
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值