不知道原因的,使用CaptureScreenshot不能保存到截图到安卓的文件系统中
所以使用另一种方式,成功了。
public IEnumerator CaptureScreenShow() { yield return new WaitForEndOfFrame(); string fileName = DateTime.Now.Ticks.ToString(); string tagerFolder = DateTime.Now.ToString("yyyy-MM-dd"); string pathName = Path.Combine(Application.persistentDataPath, tagerFolder); if (!Directory.Exists(pathName)) { Directory.CreateDirectory(pathName); } string path = pathName+"/"+fileName + ".png"; //Application.CaptureScreenshot(path); //截全屏,当然你可以控制大小 Texture2D t = new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, true); t.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0, false); t.Apply(); byte[] byt = t.EncodeToPNG();//转换为字节 File.WriteAllBytes(path, byt);//保存到路径的文件中 yield return null; //判断是否截图成功 if (File.Exists(path)) { Debug.Log("截图成功!"); } else { Debug.Log("截图失败!"); } }
其实应该就是读取屏幕的像素保存到Texture中,然后将Texture保存到文件系统中。
读取屏幕的像素,应该是渲染完成后再读取,所以要先等待到帧结束时再读取保存。