RenderPipelineManager.beginCameraRendering
Описание
Делегирование, которое можно использовать для вызова пользовательского кода до того, как Unity отобразит индивидуальный Camera.
Когда Unity вызывает RenderPipeline.BeginCameraRendering, он выполняет методы в списке вызовов этого делегата.
В Universal Render Pipeline (URP) и High Definition Render Pipeline (HDRP) Unity автоматически вызывает RenderPipeline.BeginCameraRendering. Если вы пишете пользовательский Scriptable Render Pipeline и хотите использовать этого делегата, вы должны добавить вызов 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 Руководство: Scriptable Render Pipeline