この記事でのバージョン
Unity 2020.3.25f1
はじめに
Unity公式からポストプロセスを使って見栄えを簡単かつ劇的に変える事が出来る
Post Processing Stack(Version 2.x)というものが提供されていますが、
今回はこのPost Processing Stackの設定値をプログラムから変更してみようという感じの記事。
(導入については上記記事を参考の事。)
なお、記事中では以下のアセットを使っています。
Village Environment Pack | 3D Historic | Unity Asset Store |
Post Processing Stackの値をプログラムから変更する方法
早速ですがPost Processing Stackの値をプログラムから変更するには
PostProcessVolumeのprofileからBloom等の変更したい対象を取得し、
その設定を書き換える感じになります。
//PostProcessVolume等を使うのに必要 using UnityEngine.Rendering.PostProcessing;
//PostProcessVolumeを取得 var postProcessVolume = GetComponent<PostProcessVolume>(); //PostProcessVolumeのprofileからBloomの設定を取得 var bloom = postProcessVolume.profile.GetSetting<Bloom>(); //Bloomの明るさを変更 bloom.intensity.value = 0.5f;
例えば変数の値に合わせて明るさを自動更新しようとすると以下のような感じに。
//値をプログラムから変更する対象 [SerializeField] private PostProcessVolume _postProcessVolume = default; //Bloomに設定する明るさ [SerializeField] private float _intensity = 0; //================================================================================= //更新 //================================================================================= //値(_intensity)が変更されたら実行される private void OnValidate() { //設定されたら明るさの値を反映 var bloom = _postProcessVolume.profile.GetSetting<Bloom>(); bloom.intensity.value = _intensity; }