1

我似乎无法找到一种方法来轻松地从代码中更改统一后处理堆栈中“绽放”效果的颜色。这是我尝试过的,没有效果:

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 的代码中更改“绽放”效果的颜色?

4

1 回答 1

1

使用覆盖(值)方法:

    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.com/Packages/com.unity.postprocessing@2.0/manual/Manipulating-the-Stack.html

于 2020-05-10T04:21:24.273 回答