zl程序教程

您现在的位置是:首页 >  其它

当前栏目

Unity--截取屏幕任意区域

-- Unity 屏幕 区域 截取 任意
2023-09-14 08:57:08 时间

原地址:http://blog.csdn.net/tanmengwen/article/details/8501612

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);
    }