最近需要到截图保存功能,简单做个笔记记录一下。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class TextPic : MonoBehaviour {
public RawImage raw;
// Use this for initialization
public int capx = 0;
public int capy = 0;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.A))
{
//自定义截屏
StartCoroutine(getScreenTexture());
//unity 自带截屏,只能是截全屏
// Application.CaptureScreenshot("shot.png");5.6
UnityEngine.ScreenCapture.CaptureScreenshot("shot.png");//2018
}
}
//截屏
IEnumerator getScreenTexture()
{
yield return new WaitForEndOfFrame();
//需要正确设置好图片保存格式
Texture2D t = new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, true);
//按照设定区域读取像素;注意是以左下角为原点读取
t.ReadPixels(new Rect(capx, capy, Screen.width, Screen.height), 0, 0, false);
t.Apply();
//二进制转换
byte[] byt = t.EncodeToPNG();
raw.texture = t;
}
}