Version: 2022.2

RenderPipelineManager.activeRenderPipelineTypeChanged

切换到手册

描述

Delegate that you can use to invoke custom code when Unity changes the active render pipeline, and the new RenderPipeline has a different type to the old one.

If the RenderPipeline that Unity uses to render a frame is a different type to the one from the previous frame, Unity executes the methods in this delegate's invocation list.

If you are writing a tool that relies on the resources or results of a type of RenderPipeline, you can use this delegate to be notified of any change.

The following code example demonstrates how to add a method to this delegate's invocation list, and later remove it.

using UnityEngine;
using UnityEngine.Rendering;

public class ExampleClass : MonoBehaviour { void Start() { RenderPipelineManager.activeRenderPipelineTypeChanged += OnRenderPipelineTypeChanged; }

void OnRenderPipelineTypeChanged() { // Put the code that you want to execute everytime the Render Pipeline used is changed // You can know which pipeline is currently active by calling RenderPipelineManager.currentPipeline }

void OnDestroy() { RenderPipelineManager.activeRenderPipelineTypeChanged -= OnRenderPipelineTypeChanged; } }