InterceptGameFaeture.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using Fort23.Mono.Test;
  4. using UnityEngine;
  5. using UnityEngine.Rendering.Universal;
  6. using UnityEngine.Serialization;
  7. public class InterceptGameFaeture : ScriptableRendererFeature
  8. {
  9. // public InterceptGamePass interceptGamePass;
  10. // private RenderTargetHandle m_CameraColorAttachment;
  11. // 屏幕拷贝Pass
  12. private InterceptGamePass m_CopyTransparentColorPass;
  13. public override void Create()
  14. {
  15. // 初始化构建屏幕拷贝Pass
  16. m_CopyTransparentColorPass = new InterceptGamePass(RenderPassEvent.AfterRenderingTransparents);
  17. // 映射到显存中的RT
  18. // m_CameraColorAttachment.Init("_CameraColorTexture");
  19. }
  20. public override void SetupRenderPasses(ScriptableRenderer renderer, in RenderingData renderingData)
  21. {
  22. m_CopyTransparentColorPass.Setup(renderer.cameraColorTargetHandle);
  23. }
  24. public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
  25. {
  26. // Debug.Log("AddRenderPasses");
  27. if (renderingData.cameraData.cameraType == CameraType.Game &&
  28. renderingData.cameraData.camera.CompareTag("GuiCamera"))
  29. {
  30. renderer.EnqueuePass(m_CopyTransparentColorPass);
  31. }
  32. }
  33. }