【unity2D】URP通用渲染管线-学习记录1-代码控制URP集成下的post-processing

目标

最近在学unity中跟画面相关的功能。在看完B站上某URP教学视频后,希望能用代码控制post-processing中的相关参数


前言

unity中,我们可以通过设置2dlight和post-processing来调整、渲染游戏画面。在unity更新至某版本后,unity官方用URP(UniversalRenderPipeline)集成了这两个功能。这里要注意:单独的postprocessingURP集成下的post-processing,前者引用的命名空间是UnityEngine.Rendering.PostProcessing,而后者则是UnityEngine.Rendering 和 UnityEngine.Rendering.Universal。


代码相关

在按照视频教程设置好相关画面参数后,开始写代码

using UnityEngine; using UnityEngine.Rendering; using UnityEngine.Rendering.Universal;//引用所需的两个的命名空间 public class VolumeTest : MonoBehaviour { private Volume volume;//定义一个Volume private Bloom bloom;//定义相关效果 private ChromaticAberration chromaticAberration;//定义相关效果 private void Start() { volume = GetComponent<Volume>(); volume.profile.TryGet(out bloom);//注意这里是要获取配置文件里的效果 volume.profile.TryGet(out chromaticAberration); } private void Update() { if(Input.GetKeyDown(KeyCode.L))//按下L键处理画面 { bloom.intensity.value = 26f;//这里赋值用value chromaticAberration.intensity.value = 0.5f; } if(Input.GetKeyUp(KeyCode.L))//松开L键还原画面 { bloom.intensity.value = 0f; chromaticAberration.intensity.value = 0.0f; } } }

最终效果
原画面:
image

处理后画面
image


总结

1.用代码控制URP集成下的post-processing时,使用using UnityEngine.Rendering 和 UnityEngine.Rendering.Universal两个命名空间,前者包含Volume,后者包含Volume配置文件下相关效果。
2.获取Volume配置文件下的效果时,使用

Volume名.profile.TryGet(out 效果名);

3.为该效果下的参数(参数不一定是intensity,但也类似下文写法)赋值时,使用

效果名.intensity.value = 所赋数值;

__EOF__

本文作者OtusScops
本文链接https://www.cnblogs.com/OtusScops/p/14616810.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   AshScops  阅读(2399)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示