当前位置:编程学习 > C#/ASP.NET >>

Unity--截取屏幕任意区域

   直接上代码:
    using System.IO;
[csharp]  
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);  
    }  
 
补充:软件开发 , C# ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,