Unity后期处理--在代码中改变绽放的颜色。

问题描述 投票:0回答:1

我似乎找不到一种方法可以轻松地从代码中改变unity PostProcessing Stack中 "bloom "效果的颜色。以下是我试过的方法,没有效果。

var postProcessVolume = GameObject.FindObjectOfType<UnityEngine.Rendering.PostProcessing.PostProcessVolume>();

UnityEngine.Rendering.PostProcessing.Bloom bloom = postProcessVolume.profile.GetSetting<UnityEngine.Rendering.PostProcessing.Bloom>();

var colorParameter = new UnityEngine.Rendering.PostProcessing.ColorParameter();
colorParameter.value = mainPlayer.GenerateRandomColour();
bloom.color = colorParameter;
bloom.color.value = colorParameter.value;
bloom.enabled.value = true;   

代码编译和运行正常,但没有视觉效果。 我看到一些关于这个问题的帖子,包括: 此处此处. 我已经尝试了所有的方法,我能够在这些链接中找到,没有成功。

难道没有一个简单的方法来改变 "绽放 "效果的颜色,从代码在Unity中?

c# unity3d post-processing bloom
1个回答
1
投票

使用覆盖(value)方法。

    Bloom bloom = postProcessVolume.profile.GetSetting<UnityEngine.Rendering.PostProcessing.Bloom>();
    var colorParameter = new UnityEngine.Rendering.PostProcessing.ColorParameter();
    colorParameter.value = Color.red;
    bloom.color.Override(colorParameter);

https:/docs.unity3d.comPackagescom.unity.postprocessing@2.0manualManipulating-the-Stack.html 覆盖(value)方法:

© www.soinside.com 2019 - 2024. All rights reserved.