Directly run the code: using System. IO; [csharp] void Update () {if (Input. getKeyDown (KeyCode. a) {StartCoroutine (getScreenTexture (); // the built-in screenshot of unity can only be A full screen Application. captureScreenshot ("shot.png") ;}} public int capx = 0; public int capy = 0; public int capwidth = 700; public int capheight = 500; IEnumerator getScreenTexture () {yield return new WaitForEndOfFrame (); Texture2D t = new Texture2D (capwidth, capheight, TextureFormat. RGB24, true); // you must set the image storage format t correctly. readPixels (new Rect (capx, capy, capwidth, capheight), 0, 0, false); // read pixels in the specified area. Note that t is read from the origin in the lower left corner. apply (); // Binary Conversion byte [] byt = t. encodeToPNG (); File. writeAllBytes (Application. dataPath + Time. time + ". png ", byt );}