Read Pixels to Texture2D in EditorWindow make unity crash
Hello,
first, searching very deeply on google, i found only old answers and links provideds on them were not valid anymore, so please dont post another thread in answer before ensure its really ok.
So, here is my problem:
I am trying to make a unity window to uvpaint on some custom meshs, so i need to render a camera to a rendertexture with customshader showing uvs, and then save the rendertexture to a texture2D,
problem is: when doing mytexture.ReadPixels(), the editor freeze for a long time, and then crash.
i understood that it is not that simple to do it, so i tryed to hack it:
doing Application.CaptureScreenshot("Screenshot.png"); and then retrieve texture is too long, not an option.
doing Color[] tests = UnityEditorInternal.InternalEditorUtility.ReadScreenPixel(Vector2.zero, (int)position.width, (int)position.height); after camera.Render()
does not work, it gives me a texture full of red color.
trying to put ReadPixels only when Event.repaint does not work too.
Does someone know a way to do it?
I have similar problem with ReadPixels(). Unfortunately I haven't find a solution yet. :-(
Answer by BigBlaster · Dec 09, 2015 at 04:14 PM
Hi, I tried this example from the Unity Scripting API reference manual: http://docs.unity3d.com/ScriptReference/RenderTexture-active.html
static public Texture2D GetRTPixels(RenderTexture rt) {
// Remember currently active render texture
RenderTexture currentActiveRT = RenderTexture.active;
// Set the supplied RenderTexture as the active one
RenderTexture.active = rt;
// Create a new Texture2D and read the RenderTexture image into it
Texture2D tex = new Texture2D(rt.width, rt.height);
tex.ReadPixels(new Rect(0, 0, tex.width, tex.height), 0, 0);
// Restorie previously active render texture
RenderTexture.active = currentActiveRT;
return tex;
}
It is working without crash.
i'd try it too on the new version and work without crash! but now my UI don't show!
Your answer
Follow this Question
Related Questions
Problem with "play" button 0 Answers
Unity freezes (5+ min) after version update. How to investigate the problem? 0 Answers
Capture Screenshot on Linux Headless Machine 3 Answers
arbitrary orientation problem with Readpixels and render texture when I cut texture to splinters 1 Answer
Unity freezing before even starting 1 Answer