【Unity】URPでPostProcessingを動的に変更する方法

  • URLをコピーしました!
目次

はじめに

Universal Render Pipeline を使用したプロジェクトでPost Processing を動的に変更する際のサンプルです。

  • Unity 2021.3.4
  • Universal RP 12.1.7

サンプル

using UnityEngine;
using UnityEngine.Rendering;//Volumeを使うのに必要
using UnityEngine.Rendering.Universal;//Bloomを使うのに必要

public class Temp : MonoBehaviour
{
	[SerializeField] Volume volume;
	Bloom bloom;

	void Start()
	{
		//任意の場所で呼び出してON/OFF
		BloomOnOff(true);
	}

	public void BloomOnOff(bool onoff)
	{
		if(volume.profile.TryGet<Bloom>(out bloom))
		{
			bloom.active = onoff;
		}
	}
}

Bloomの強さを変えたい場合はfloatで値を受け取って「bloom.intensity.value」を変更します。

	public void BloomOnOff(float fl)
	{
		if(volume.profile.TryGet<Bloom>(out bloom))
		{
			bloom.intensity.value = fl;
		}
	}

その他

Assembly Definition を設定している環境では「Unity.RenderPipelines.Core.Runtime」と「Unity.RenderPipelines.Universal.Runtime」の2つを参照する必要があります。。。これハマりました。

  • Unity.RenderPipelines.Core.Runtime
  • Unity.RenderPipelines.Universal.Runtime
あわせて読みたい
【Unity】Assembly Definition Filesをサクッと設定する はじめに 「Assembly Definition」を設定する際のメモです。サクッと設定したいので少し乱暴なやり方かもしれません。「Assembly Definition」を設定するメリットはエデ...

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次