步骤
- 1. 引用URP的命名空间
- 2. 获取摄像机
- 3.通过URP扩展获取Volume Mask属性
- 附 层级的相关代码
- Reference
1. 引用URP的命名空间
using UnityEngine.Rendering.Universal;
2. 获取摄像机
这里可以使用公有拖拽或者私有赋值的方式。
如果使用拖拽,则:
public Camera URPCam;
或
使用赋值方式,先定义该相机,在Awake时为其赋值(此处以主摄像机为例):
private Camera URPCam;
private void Awake()
{
URPCam = Camera.main;
}
3.通过URP扩展获取Volume Mask属性
var volumeMask = URPCam.GetUniversalAdditionalCameraData().volumeLayerMask;
附 层级的相关代码
1.只渲染某一层
volumeMask = 1<<7; //只渲染第七层
volumeMask = 1<<8; //只渲染第八层
volumeMask = (1<<7)+(1<<8); //只渲染第七层和第八层
2.渲染所有层
volumeMask = -1; //对应everything
3.任何层都不渲染
volumeMask = 0; //对应nothing
4.在原来基础上添加某一层
volumeMask |= (1 << 10); //在原来的基础上增加第10层
5.在原来基础上剔除某一层
volumeMask &= ~(1 << 10); //在原来的基础上剔除第10层
6.渲染除某层外的所有层
volumeMask = ~(1 << 10); //渲染除第10层之外的其他所有层
Reference
- The Universal Additional Camera Data component
- Class UniversalAdditionalCameraData