| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | 
							- 
 
- using UnityEngine;
 
- using UnityEngine.Experimental.Rendering;
 
- using UnityEngine.Rendering;
 
- using UnityEngine.Rendering.Universal;
 
- using UnityEngine.Serialization;
 
- namespace Fort23.Mono.Test
 
- {
 
-     [System.Serializable]
 
-     public class InterceptGamePass : ScriptableRenderPass
 
-     {
 
-         private static bool isIntercept;
 
-         // private RenderTextureDescriptor RenderTextureDescriptor;
 
-         private static RenderTexture RenderTexture;
 
-         private const string m_ProfilerTag = "Intercept";
 
-         
 
-         public RenderTargetHandle m_Destination;
 
-         private static System.Action _finish;
 
-         private static int count;
 
-         private RenderTextureDescriptor cameraTextureDescriptor;
 
-         private static System.Action<ScriptableRenderContext, RenderingData, RenderTexture, RenderTargetIdentifier, RenderTextureDescriptor> OnExecuteCallBack;
 
-         // private ScriptableRenderer renderer;
 
-         private RTHandle _rtHandle;
 
-         public static void SetRenderTexture(RenderTexture renderTexture, System.Action finish,
 
-             System.Action<ScriptableRenderContext, RenderingData, RenderTexture, RenderTargetIdentifier, RenderTextureDescriptor> executeCallBack = null)
 
-         {
 
-             // Debug.Log("开始准备背景界面");
 
-             // finish?.Invoke();
 
-             // return;
 
-             RenderTexture = renderTexture;
 
-             _finish+= finish;
 
-             isIntercept = true;
 
-             OnExecuteCallBack = executeCallBack;
 
-             count = 1;
 
-         }
 
-         public InterceptGamePass(RenderPassEvent evt)
 
-         {
 
-             renderPassEvent = evt;
 
-         }
 
-         public void Setup(RTHandle rtHandle)
 
-         {
 
-             this._rtHandle = rtHandle;
 
-         }
 
-         public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData)
 
-         {
 
-             if (isIntercept)
 
-             {
 
-                 // Debug.Log("执行背景背景界面");
 
-                 count--;
 
-                 // 执行拷贝命令
 
-                 CommandBuffer cmd = CommandBufferPool.Get(m_ProfilerTag);
 
-                 // var descriptor = RenderTextureDescriptor;
 
-                 // descriptor.depthBufferBits = 0;
 
-                 //
 
-                 // RenderTargetIdentifier renderTargetIdentifier = new RenderTargetIdentifier(RenderTexture);
 
-                 // m_Destination.Init(renderTargetIdentifier);
 
-                 
 
-                 Blit(cmd,_rtHandle, RenderTexture);
 
-                
 
-                 context.ExecuteCommandBuffer(cmd);
 
-                 CommandBufferPool.Release(cmd);
 
-                 OnExecuteCallBack?.Invoke(context, renderingData, RenderTexture,_rtHandle, cameraTextureDescriptor);
 
-             }
 
-         }
 
-         public override void OnFinishCameraStackRendering(CommandBuffer cmd)
 
-         {
 
-             // if (m_Destination != RenderTargetHandle.CameraTarget)
 
-             // {
 
-             //     // m_Destination = RenderTargetHandle.CameraTarget;
 
-             // }
 
-             if (count <= 0&&isIntercept)
 
-             {
 
-                 // Debug.Log("完成背景界面");
 
-                 isIntercept = false;
 
-                 _finish?.Invoke();
 
-                 _finish = null;
 
-             }
 
-         }
 
-         public override void Configure(CommandBuffer cmd, RenderTextureDescriptor cameraTextureDescriptor)
 
-         {
 
-             this.cameraTextureDescriptor = cameraTextureDescriptor;
 
-         }
 
-     }
 
- }
 
 
  |