@@ -56,6 +56,7 @@ private struct ImportResourceSummary
5656 CopyDepthPass m_CopyDepthPass ;
5757 UpscalePass m_UpscalePass ;
5858 CopyCameraSortingLayerPass m_CopyCameraSortingLayerPass ;
59+ CapturePass m_CapturePass ;
5960 FinalBlitPass m_FinalBlitPass ;
6061 FinalBlitPass m_OffscreenUICoverPrepass ;
6162 DrawScreenSpaceUIPass m_DrawOffscreenUIPass ;
@@ -117,6 +118,7 @@ public Renderer2D(Renderer2DData data) : base(data)
117118
118119 m_UpscalePass = new UpscalePass ( RenderPassEvent . AfterRenderingPostProcessing , m_BlitMaterial ) ;
119120 m_CopyCameraSortingLayerPass = new CopyCameraSortingLayerPass ( m_BlitMaterial ) ;
121+ m_CapturePass = new CapturePass ( RenderPassEvent . AfterRendering ) ;
120122 m_FinalBlitPass = new FinalBlitPass ( RenderPassEvent . AfterRendering + k_FinalBlitPassQueueOffset , m_BlitMaterial , m_BlitHDRMaterial ) ;
121123 m_OffscreenUICoverPrepass = new FinalBlitPass ( RenderPassEvent . BeforeRenderingPostProcessing , m_BlitMaterial , m_BlitOffscreenUICoverMaterial ) ;
122124
@@ -201,7 +203,8 @@ private RenderPassInputSummary GetRenderPassInputs(UniversalCameraData cameraDat
201203 || cameraData . cameraTargetDescriptor . msaaSamples > 1 && UniversalRenderer . PlatformRequiresExplicitMsaaResolve ( )
202204 || m_Renderer2DData . useCameraSortingLayerTexture
203205 || ! Mathf . Approximately ( cameraData . renderScale , 1.0f )
204- || ( DebugHandler != null && DebugHandler . WriteToDebugScreenTexture ( cameraData . resolveFinalTarget ) ) ;
206+ || ( DebugHandler != null && DebugHandler . WriteToDebugScreenTexture ( cameraData . resolveFinalTarget ) )
207+ || cameraData . captureActions != null ;
205208
206209 return inputSummary ;
207210 }
@@ -958,6 +961,12 @@ private void OnAfterRendering(RenderGraph renderGraph)
958961 var finalBlitTarget = resolveToDebugScreen ? commonResourceData . debugScreenColor : commonResourceData . backBufferColor ;
959962 var finalDepthHandle = resolveToDebugScreen ? commonResourceData . debugScreenDepth : commonResourceData . backBufferDepth ;
960963
964+ // Capture pass for Unity Recorder
965+ if ( hasCaptureActions )
966+ {
967+ m_CapturePass . RecordRenderGraph ( renderGraph , frameData ) ;
968+ }
969+
961970 if ( applyFinalPostProcessing )
962971 {
963972 m_PostProcessPassRenderGraph . RenderFinalPassRenderGraph ( renderGraph , frameData , in finalColorHandle , commonResourceData . overlayUITexture , in finalBlitTarget , needsColorEncoding ) ;
0 commit comments