【Unity】URP渲染管线下代码获取相机的Volume Mask属性

21 篇文章 6 订阅

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

  1. The Universal Additional Camera Data component
  2. Class UniversalAdditionalCameraData
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值