脚本化Unity后处理堆栈

时间:2017-07-19 20:54:34

标签: c# unity3d post-processing

我试图通过脚本使用其后期处理堆栈的 bloom 效果来模仿Unity中的闪电效果(以修改强度),但不知怎的,我是'我无法通过脚本实际设置任何内容。

PostProcessingProfile postProcProf;
postProcProf.bloom.settings.bloom.intensity = 
Mathf.Lerp(data[i].Strength, data[i + 1].Strength, data[i].TimeToReachNext);

这是我的代码,但它说

  

无法修改BloomModel.Settings的返回值,因为它不是变量。

我没有找到关于如何脚本后处理堆栈的指南,只介绍了如何从编辑器中使用它。

1 个答案:

答案 0 :(得分:4)

根据Unity's guide on modifying post-processing at runtime,您应该修改settings值的副本,然后用您的副本覆盖原件(不要试图直接更改BloomModel.Settings的成员):

PostProcessingProfile postProcProf;
var bloom = postProcProf.bloom.settings;
bloom.bloom.intensity = Mathf.Lerp(data[i].Strength, data[i + 1].Strength, data[i].TimeToReachNext);
postProcProf.bloom.settings = bloom;