如何在Unity中使用代码淡化色差
How to fade chromatic aberration using code in Unity
我正在尝试淡化由按键触发的色差效果,但不确定从哪里开始。
我正在使用内置渲染管线。
关于通过代码控制 post 处理的文档似乎很少。
请提出任何资源。
我猜您正在使用 post 处理包。这是获取有关如何使用它的一些信息的重要资源:https://docs.unity3d.com/Packages/com.unity.postprocessing@2.1/manual/Manipulating-the-Stack.html
使用此系统操作 post 处理 (pp) 效果的最简单方法是覆盖 pp 配置文件的设置。
只需像场景中的所有其他资产一样引用配置文件,获取 ChromaticAberration 设置并覆盖设置。
像这样:
public PostProcessProfile profile;
private ChromaticAberration ca;
// Start is called before the first frame update
void Start()
{
ca = profile.GetSetting<ChromaticAberration>();
}
// Update is called once per frame
void Update()
{
ca.intensity.Override(Mathf.Sin(Time.frameCount * 0.1f));
}
要进行淡入淡出,我建议您像我链接的示例中那样使用补间库。 DoTween 很棒。如果您不想这样做,您可以随时创建自己的协程并为行为设置动画。
我正在尝试淡化由按键触发的色差效果,但不确定从哪里开始。
我正在使用内置渲染管线。
关于通过代码控制 post 处理的文档似乎很少。 请提出任何资源。
我猜您正在使用 post 处理包。这是获取有关如何使用它的一些信息的重要资源:https://docs.unity3d.com/Packages/com.unity.postprocessing@2.1/manual/Manipulating-the-Stack.html
使用此系统操作 post 处理 (pp) 效果的最简单方法是覆盖 pp 配置文件的设置。
只需像场景中的所有其他资产一样引用配置文件,获取 ChromaticAberration 设置并覆盖设置。 像这样:
public PostProcessProfile profile;
private ChromaticAberration ca;
// Start is called before the first frame update
void Start()
{
ca = profile.GetSetting<ChromaticAberration>();
}
// Update is called once per frame
void Update()
{
ca.intensity.Override(Mathf.Sin(Time.frameCount * 0.1f));
}
要进行淡入淡出,我建议您像我链接的示例中那样使用补间库。 DoTween 很棒。如果您不想这样做,您可以随时创建自己的协程并为行为设置动画。