スクリプタブルレンダーパイプライン (SRP) では、プロジェクトにアクティブな レンダーパイプラインアセット が必要です。このページには、Unity エディターとランタイムでプロジェクトのレンダリングパイプラインアセットを設定するための情報が含まれています。
SRP は、設定が非常に柔軟であるため、アクティブなレンダーパイプラインアセットの変更は、異なる品質層を使ったおなじレンダーパイプラインインスタンスを使用するようなとてもマイナーな変更の場合もあれば、ユニバーサルレンダーパイプライン (URP) から HD レンダーパイプライン (HDRP) へ切り替えるような、とても大きな変更の場合もあります。
アクティブなレンダーパイプラインアセットを別のレンダーパイプラインインスタンスを使用するものに変更する場合は、プロジェクトのアセットとコードが新しいレンダーパイプラインインスタンスと互換性があることを確認する必要があります。そうしないと、エラーや意図しない視覚効果が発生する可能性があります。
また、新しいレンダーパイプラインアセットに切り替えると、Unity は現在のレンダーパイプラインインスタンスを破棄し、新しいレンダーパイプラインアセットの CreatePipeline()
メソッドを呼び出します。SRP のコードによっては、これは計算上リソースに負担が高い操作になる場合があります。
プロジェクトの編集中にスクリプタブルレンダーパイプライン (SRP) を使用できるように、Unity エディターでレンダーパイプラインアセットを設定する必要があります。エディターで設定したレンダーパイプラインアセットは、ビルドされたプレイヤーで Unity がデフォルトで使用するものです。
Graphics Settings ウィンドウでプロジェクトのレンダーパイプラインアセットを設定します。
レンダーパイプラインアセット間で切り替えをしたい場合は、ランタイムにレンダーパイプラインアセットを設定できます。これは、ビルドしたプレイヤーやエディターの再生モードで行えます。
ランタイムに、GraphicsSettings.renderPipelineAsset API を使用してレンダーパイプラインアセットを設定します。
以下のコード例は、2 つのレンダーパイプラインアセットを切り替える方法を示しています。
using UnityEngine;
using UnityEngine.Rendering;
public class SwitchRenderPipelineAsset : MonoBehaviour
{
public RenderPipelineAsset exampleAssetA;
public RenderPipelineAsset exampleAssetB;
void Update()
{
if (Input.GetKeyDown(KeyCode.A)) {
GraphicsSettings.renderPipelineAsset = exampleAssetA;
Debug.Log("Active render pipeline asset is: " + GraphicsSettings.renderPipelineAsset.name);
}
else if (Input.GetKeyDown(KeyCode.B)) {
GraphicsSettings.renderPipelineAsset = exampleAssetB;
Debug.Log("Active render pipeline asset is: " + GraphicsSettings.renderPipelineAsset.name);
}
}