Advertisement
Guest User

Untitled

a guest
Mar 24th, 2019
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.36 KB | None | 0 0
  1. public class ScreenshotTool : MonoBehaviour, IAfterRender
  2.     {
  3.         private GrabPass grabPass;
  4.  
  5.         public ScriptableRenderPass GetPassToEnqueue()
  6.         {
  7.             if (grabPass == null)
  8.                 grabPass = new GrabPass();
  9.  
  10.             return grabPass;
  11.         }
  12.     }
  13.  
  14.     public class GrabPass : ScriptableRenderPass
  15.     {
  16.         public override void Execute(ScriptableRenderer renderer, ScriptableRenderContext context, ref RenderingData renderingData)
  17.         {
  18.             CommandBuffer buffer = new CommandBuffer();
  19.  
  20.             Camera camera = renderingData.cameraData.camera;
  21.             using (new ProfilingSample(buffer, "test"))
  22.             {
  23.                 RenderTextureDescriptor desc = ScriptableRenderer.CreateRenderTextureDescriptor(ref renderingData.cameraData);
  24.                 RenderTexture rt = new RenderTexture(desc);
  25.  
  26.                 Texture2D tex = new Texture2D(camera.pixelWidth, camera.pixelHeight);
  27.                 RenderTexture.active = rt;
  28.                 tex.ReadPixels(new Rect(0, 0, camera.pixelWidth, camera.pixelHeight), 0, 0);
  29.                 tex.Apply();
  30.  
  31.                 File.WriteAllBytes(Path.Combine(Application.persistentDataPath, $"screenshot.jpg"), tex.EncodeToJPG());
  32.                 Object.DestroyImmediate(tex);
  33.             }
  34.  
  35.             context.ExecuteCommandBuffer(buffer);
  36.         }
  37.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement