截屏大概步骤 是首先读取屏幕的像素信息,然后保存为Texture2D,最后保存为图片;
private Texture2D picture;
private string fileName;
private string filePath;
public void ScreenCapture()
{
StartCoroutine (SavePicture());
}
IEnumerator SavePicture()
{
//只在每一帧渲染完成后才读取屏幕信息
yield return new WaitForEndOfFrame ();
//实例化
picture = new Texture2D (Screen.width, Screen.height);
//读取屏幕像素信息并存储为纹理数据
picture.ReadPixels (new Rect (0, 0, Screen.width, Screen.height), 0, 0);
// 这一句必须有,像素信息并没有保存在2D纹理贴图中
picture.Apply ();
//读取将这些纹理数据,成一个jpg图片文件
byte[] bytes = picture.EncodeToJPG ();
fileName = DateTime.Now.ToFileTime ().ToString () + ".jpg";
filePath = Application.persistentDataPath + "卫星" + fileName;
Debug.Log (filePath);
//写入文件 并且指定路径,
File.WriteAllBytes (filePath, bytes);
Debug.Log("打印完成!!!!!!!!!!!");
}