- Home /
incompatibility with high-res-screenshot code
see the pic to show the screenshots another guy and myself are getting from the high res screenshot code recently. the grey color is the same as the hierarchy background.
it seems the script works on some installs of Unity3d and not on other, maybe 3.55?
using UnityEngine;
using System.Collections;
public class HiResScreenShots : MonoBehaviour {
public int resWidth = 2550;
public int resHeight = 3300;
private bool takeHiResShot = false;
public static string ScreenShotName(int width, int height) {
return string.Format("{0}/screenshots/screen_{1}x{2}_{3}.png",
Application.dataPath,
width, height,
System.DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss"));
}
public void TakeHiResShot() {
takeHiResShot = true;
}
void LateUpdate() {
takeHiResShot |= Input.GetKeyDown("k");
if (takeHiResShot) {
RenderTexture rt = new RenderTexture(resWidth, resHeight, 24);
camera.targetTexture = rt;
Texture2D screenShot = new Texture2D(resWidth, resHeight, TextureFormat.RGB24, false);
camera.Render();
RenderTexture.active = rt;
screenShot.ReadPixels(new Rect(0, 0, resWidth, resHeight), 0, 0);
camera.targetTexture = null;
RenderTexture.active = null; // JC: added to avoid errors
Destroy(rt);
byte[] bytes = screenShot.EncodeToPNG();
string filename = ScreenShotName(resWidth, resHeight);
System.IO.File.WriteAllBytes(filename, bytes);
Debug.Log(string.Format("Took screenshot to: {0}", filename));
takeHiResShot = false;
}
}
}
I'm getting this same error. Looking for a fix as soon as possible. Thank you.
you are using U3d 3.55? is anyone managing to get this working on unity 3.55 please?
it may be related to this
Assets/Scripts/HiResScreenShots.cs(35,28): error CS0117: `System.IO.File' does not contain a definition for `WriteAllBytes'
Answer by MountDoomTeam · Oct 19, 2012 at 03:00 PM
this is not entirely the solution although it may be, I don't know why it doesn't say there is a bug when you actually run it, only when you try and build it
Assets/Scripts/HiResScreenShots.cs(35,28): error CS0117: `System.IO.File' does not contain a definition for `WriteAllBytes'
Answer by Chris ♥ 3D · Aug 06, 2014 at 07:55 PM
I had the same problem with the free version of Unity running on my Laptop. Once back at my main workstation where I run Unity Pro 4.5.2 everything worked perfectly. So it might be the script makes use of a pro feature?
Your answer
Follow this Question
Related Questions
Screen explodes into colors bug, "screen position outside of view frustum" 0 Answers
Using ScreenCapture.CaptureScreenshot freezes Unity Editor (2019.4.26f1) 0 Answers
How can you hide "Development Build" text? (without unchecking) 0 Answers
Unity Android Streaming Assets Save/Recall w/ WWW class? 0 Answers
Take a Screenshot and Automatically have it Emailed to My Email (Android/iPhone) 0 Answers