Ejemplo n.º 1
0
    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);
            }
        }
    }