Unity 笔记SortingLayer、Order in Layer和RenderQueue讲解

1.首先先了解一下摄像机的Depth 深度渲染,深度值越低 越先渲染,深度值高 后渲染,所以一般UICamera的Depth大于3D摄像机

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

显示层级如下:

可以通过脚本对相机层级进行控制,然后进行针对显示 (可以用做多个物体的自由选择显示等)

层级索引是int类型的,我们可以通过int32对layer层级进行访问和调用

具体写法如下

  1. 用于只渲染某一层

_camera.cullingMask=1<<8; //只渲染第八层

_camera.cullingMask=1<<9; //只渲染第九层

_camera.cullingMask=1<<10;//只渲染第十层

只渲染第8、9、10层

_camera.cullingMask=(1<<10)+(1<<9)+(1<<8);

  1. 渲染所有层

_camera.cullingMask=-1; //对应everything

  1. 任何层都不渲染

_camera.cullingMask=0;//对应nothing

  1. 在原来基础上添加某一层

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

  1. 在原来基础上减去某一层

_camera。cullingMask &=~(1<<10); //在原来的基础上减掉第10层

  1. 渲染除了某一层外的所以层

_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"));

猜你喜欢

转载自blog.csdn.net/qq1084327456/article/details/128914684