您的位置:首页 > 移动开发 > Unity3D

Unity--截取屏幕任意区域

2013-10-30 18:29 190 查看
直接上代码:

using System.IO;

void Update () {
if(Input.GetKeyDown(KeyCode.A))
{
StartCoroutine(getScreenTexture());
//unity 自带截屏,只能是截全屏
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);//需要正确设置好图片保存格式
t.ReadPixels(new Rect(capx,capy,capwidth,capheight), 0, 0, false);//按照设定区域读取像素;注意是以左下角为原点读取
t.Apply();
//二进制转换
byte[] byt = t.EncodeToPNG();
File.WriteAllBytes(Application.dataPath  + Time.time + ".png", byt);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: