• Unity中Camera参数—Culling Mask详解


    参考原文地址:https://blog.csdn.net/qq_35241071/article/details/125001213

    ------------------------------------------------------------------------------------------------------

    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”));
    同理如上······操作跟上面一样!

  • 相关阅读:
    week4
    week3
    2017福州大学面向对象程序设计寒假作业二
    Week2
    10个android开发必备的开源项目
    Day Ten
    Day Nine
    Day Eight
    Day Seven
    Day Six
  • 原文地址:https://www.cnblogs.com/lovewaits/p/16423624.html
Copyright © 2020-2023  润新知