Описание
Делегирование, которое можно использовать для вызова пользовательского кода до того, как Unity отобразит отдельную камеру.
Когда Unity вызывает RenderPipeline.BeginCameraRendering, выполняются методы из списка вызовов этого делегата.
В универсальном конвейере рендеринга (URP) и конвейере рендеринга высокого разрешения (HDRP) Unity автоматически вызывает RenderPipeline.BeginCameraRendering. Если вы пишете собственный конвейер рендеринга с поддержкой сценариев и хотите использовать этот делегат, вы должны добавить вызов RenderPipeline.BeginCameraRendering.
В следующем примере кода показано, как добавить метод в список вызовов этого делегата, а затем удалить его.
using UnityEngine;
using UnityEngine.Rendering;
public class ExampleClass : MonoBehaviour
{
void Start()
{
RenderPipelineManager.beginCameraRendering += OnBeginCameraRendering;
}
void OnBeginCameraRendering(ScriptableRenderContext context, Camera camera)
{
// Put the code that you want to execute before the camera renders here
// If you are using URP or HDRP, Unity calls this method automatically
// If you are writing a custom SRP, you must call RenderPipeline.BeginCameraRendering
}
void OnDestroy()
{
RenderPipelineManager.beginCameraRendering -= OnBeginCameraRendering;
}
}
Смотрите так же: RenderPipeline.BeginCameraRendering, RenderPipeline.EndCameraRendering, RenderPipeline.BeginFrameRendering, RenderPipeline.EndFrameRendering, Unity Manual: Scriptable Render Pipeline