using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Rendering; using UnityEngine.Rendering.Universal; public class ClearRTAfterTransparent : ScriptableRendererFeature { class ClearPass : ScriptableRenderPass { public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { CommandBuffer cmd = CommandBufferPool.Get("Clear RT After Transparent"); cmd.ClearRenderTarget(true, true, Color.clear); // 清颜色 & 深度 context.ExecuteCommandBuffer(cmd); CommandBufferPool.Release(cmd); } } ClearPass pass; public override void Create() { pass = new ClearPass { renderPassEvent = RenderPassEvent.AfterRenderingTransparents // 在透明物体之后 }; } public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData) { renderer.EnqueuePass(pass); } }