Skip to content

Instantly share code, notes, and snippets.

@ktpttd
Forked from krzys-h/SaveRenderTextureToFile.cs
Created April 11, 2023 06:57
Show Gist options
  • Select an option

  • Save ktpttd/df5be103b99aad5d98df19bc0b9f2c5e to your computer and use it in GitHub Desktop.

Select an option

Save ktpttd/df5be103b99aad5d98df19bc0b9f2c5e to your computer and use it in GitHub Desktop.
[Unity] Save RenderTexture to image file
using UnityEngine;
using UnityEditor;
public class SaveRenderTextureToFile {
[MenuItem("Assets/Save RenderTexture to file")]
public static void SaveRTToFile()
{
RenderTexture rt = Selection.activeObject as RenderTexture;
RenderTexture.active = rt;
Texture2D tex = new Texture2D(rt.width, rt.height, TextureFormat.RGB24, false);
tex.ReadPixels(new Rect(0, 0, rt.width, rt.height), 0, 0);
RenderTexture.active = null;
byte[] bytes;
bytes = tex.EncodeToPNG();
string path = AssetDatabase.GetAssetPath(rt) + ".png";
System.IO.File.WriteAllBytes(path, bytes);
AssetDatabase.ImportAsset(path);
Debug.Log("Saved to " + path);
}
[MenuItem("Assets/Save RenderTexture to file", true)]
public static bool SaveRTToFileValidation()
{
return Selection.activeObject is RenderTexture;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment