c# - Unity 后处理 - 在代码中更改绽放的颜色

标签 c# unity-game-engine post-processing 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;   

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

是否没有一种简单的方法可以在 Unity 代码中更改“绽放”效果的颜色?

最佳答案

使用覆盖(值)方法:

    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/[email protected]/manual/Manipulating-the-Stack.html

关于c# - Unity 后处理 - 在代码中更改绽放的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61706589/

相关文章:

c# - 如何在每个 Controller Action 中使用异步 ViewModel?

c# - C#/WPF 中的分散式聊天功能?

c# - Unity 跑酷游戏中的对象池实现(重用)

android - Google Playstore 使用相同的 key 发布不同的项目?

c# - OCR图像预处理

c# - 运行 epstopdf 时出现问题。检查你的 TeX 安装

c# - 在 C# 中创建自定义结构和访问属性的字典

latex - 是否可以使用 Latex 源文件执行 'unity build'?

java - Spring Boot 抛出 ClassNotFoundException 与另一个项目的 Maven 依赖关系

java - 如何在 awt 或 swing 窗口上使用后处理