一,URP工程配置
-
在Hierarchy界面,创建空物体
GameObject
,右键选择Volume
菜单下的Global Volume
。
创建后的结果: -
设置Volume的Profile,点击右侧的New新创建一个配置文件,或者新建文件夹右键选择
Create
->Volume Profile
:
创建完成后赋值过去: -
添加边角压暗效果:Vignette组件,
Add Override
->Post- processing
->Vignette
: -
组件内容,从上到下依次是:颜色,中心点,强度,平滑度,圆
-
开启摄像机的Post Processing选项:
-
运行看下效果:
二,代码调用
创建代码命名为PostProcessingProfile
,并挂载到Global Volume
物体上如下图:
代码内容如下:
测试用例:按下A设置强度为1显示效果,按下S设置强度为0关闭效果:
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;
public class PostProcessingProfile : MonoBehaviour
{
// 后处理的配置容器
private Volume _volume;
// 根据Inspector面板上的组件创建对应类型变量
private Vignette _vignette;
void Start()
{
// 获取容器
_volume = GetComponent<Volume>();
// 获取此容器下添加的组件
_volume.profile.TryGet(out _vignette);
}
void Update()
{
if (Input.GetKeyDown(KeyCode.A))
{
SetIntensity(1);
}
if (Input.GetKeyDown(KeyCode.S))
{
SetIntensity(0);
}
}
// 设置颜色
void SetIntensity(Color color)
{
_vignette.color.Override(color);
}
// 设置中心点
void SetIntensity(Vector2 vector2)
{
_vignette.center.Override(vector2);
}
// 设置强度 x:0~1
void SetIntensity(float x)
{
_vignette.intensity.Override(x);
}
// 设置平滑度 x:0~1
void SetSmoothness(float x)
{
_vignette.smoothness.Override(x);
}
// 是否是正圆
void SetRounded(bool isRound)
{
_vignette.rounded.Override(isRound);
}
}
三,实现原理
相关推荐:Unity 之 Post Processing后处理不同项目配置(URP项目配置)
Post Processing
后期处理是指在摄影机绘制场景之后但在屏幕上渲染场景之前出现的全屏图像处理效果的通用术语。后期处理可以大大提高产品的视觉效果,只需很少的设置时间。文章来源:https://www.toymoban.com/news/detail-487275.html
Post Processing 官方文档: https://docs.unity3d.com/Packages/com.unity.postprocessing@3.2/manual/index.html文章来源地址https://www.toymoban.com/news/detail-487275.html
到了这里,关于Unity 之 使用后处理的方式实现暗角效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!