RenderPipelineManager.beginContextRendering
Описание
Делегирование, которое можно использовать для вызова пользовательского кода в начале RenderPipeline.Render.
Когда Unity вызывает RenderPipeline.BeginContextRendering в начале RenderPipeline.Render, он выполняет методы в списке вызовов этого делегата.
В Universal Render Pipeline (URP) и High Definition Render Pipeline (HDRP) Unity автоматически вызывает RenderPipeline.BeginContextRendering. Если вы пишете пользовательский Scriptable Render Pipeline, вы должны вызвать метод самостоятельно. Эта функция не совместима с Built-in Render Pipeline.
Этот делегат работает так же, как RenderPipelineManager.beginFrameRendering, за исключением того, что эта версия не вызывает выделения кучи.
В следующем примере кода показано, как добавить метод в список вызовов этого делегата, а затем удалить его.
using UnityEngine; using UnityEngine.Rendering; using System.Collections.Generic;
public class ExampleClass : MonoBehaviour { void Start() { RenderPipelineManager.beginContextRendering += OnBeginContextRendering; }
void OnBeginContextRendering(ScriptableRenderContext context, List<Camera> cameras) { // Put the code that you want to execute at the start of RenderPipeline.Render here }
void OnDestroy() { RenderPipelineManager.beginContextRendering -= OnBeginContextRendering; } }
Дополнительные ресурсы: RenderPipeline.BeginContextRendering, RenderPipelineManager.endContextRendering, Unity Руководство: Scriptable Render Pipeline