I am creating a camera that allows the player to take pictures in game. I am using a separate camera other than the MainCamera that renders to a RenderTexture for the “fake” camera screen. Right now it’s taking a picture of what the MainCamera sees, which I understand. What I’m trying to figure out is how to take/save a png from that RenderTexture when the player wants to take a picture. The code that I’m using is essentially from the Texture2D Script Reference. I’m not sure if Screen.width/height will work in this situation either unless I can find a way to access the “fake” camera’s projection width/height.
void TakePic()
{
int width = Screen.width;
int height = Screen.height;
Texture2D tex = new Texture2D(width, height, TextureFormat.RGB24, false);
tex.ReadPixels(new Rect(0, 0, width, height), 0, 0);
tex.Apply ();
var bytes = tex.EncodeToPNG();
File.WriteAllBytes("Sample.png", bytes);
Destroy(tex);
}