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.自定义截图大小

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);      
   }


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页