• unity实现截屏功能


    好讨厌说废话,直接来吧

    unity的小功能,实现截屏功能

    大致分三种:

    1.针对指定的相机进行截屏

      public Texture2D CaptureScreen(Camera came, Rect r)
        {
            RenderTexture rt = new RenderTexture((int)r.width, (int)r.height, 0);
    
            came.targetTexture = rt;
            came.Render();
    
            RenderTexture.active = rt;
            Texture2D screenShot = new Texture2D((int)r.width, (int)r.height, TextureFormat.RGB24, false);
    
            screenShot.ReadPixels(r, 0, 0);
            screenShot.Apply();
    
            came.targetTexture = null;
            RenderTexture.active = null;
            GameObject.Destroy(rt);
    
            byte[] bytes = screenShot.EncodeToPNG();
            string filename = Application.streamingAssetsPath + "/ScreenShot.png";
            System.IO.File.WriteAllBytes(filename, bytes);
    
            return screenShot;
        }
    

      

    2.自定义截图的大小(包括UI)

    public Texture2D CaptureScreen(Rect rect)
        {
            Texture2D screenShot = new Texture2D((int)rect.width, (int)rect.height, TextureFormat.RGB24, false);
    
            screenShot.ReadPixels(rect, 0, 0);
    
            screenShot.Apply();
    
            byte[] bytes = screenShot.EncodeToPNG();
            string filename = Application.streamingAssetsPath + "/ScreenShot.png";
            System.IO.File.WriteAllBytes(filename, bytes);
    
            return screenShot;
        }
    

      

    3.截取屏幕全屏

     public void CapruerScreen()
        {
            // Application.CaptureScreenshot(Application.persistentDataPath + "ScreenShot.png", 0);//过时的方法
            ScreenCapture.CaptureScreenshot( Application.streamingAssetsPath + "/ScreenShot.png", 0);       
        }
    

      

    个人觉得这三种已经满足需求了,所以就到这。

  • 相关阅读:
    第三周学习笔记
    质量属性
    第四周学习
    逻辑回归
    架构的概念
    第二周总结
    线性回归
    十步走-阅读笔记六
    十步走-阅读笔记五
    P2633 Count on a tree
  • 原文地址:https://www.cnblogs.com/MissLi/p/8005342.html
Copyright © 2020-2023  润新知