void LateUpdate() { if (takeScreenshot) { Camera camera = gameObject.GetComponent <Camera>(); camera.pixelRect = new Rect(0, 0, Screen.width, Screen.height); RenderTexture rt = new RenderTexture(screenshotSize, screenshotSize, 24); camera.targetTexture = rt; Texture2D screenShot = new Texture2D(screenshotSize, screenshotSize, TextureFormat.RGB24, false); camera.Render(); RenderTexture.active = rt; screenShot.ReadPixels(new Rect(0, 0, screenshotSize, screenshotSize), 0, 0); camera.targetTexture = null; RenderTexture.active = null; // JC: added to avoid errors Destroy(rt); int[][] values = new int[screenShot.width][]; for (int x = 0; x < screenShot.width; x++) { values[x] = new int[screenShot.height]; for (int y = 0; y < screenShot.height; y++) { values[x][y] = DrawingPanel.ColorToInt(screenShot.GetPixel(x, screenShot.height - y - 1)); } } takeScreenshot = false; ProjectPanel.GetComponent <ProjectPanel>().SetTerrainThumbnail(values); if (rectTransform != null) { SetCameraViewport(rectTransform); } } }