Unity 截图功能

截图功能。图片名字为当前的年月日。

 

public class jietuCtr : MonoBehaviour {

    public Camera mainCamera;
    public Button ScreenshotBtn;

    private void Start()
    {
        ScreenshotBtn.onClick.AddListener(ScreenshotAgain);
    }

    void ScreenshotAgain()
    {
        CaptureCamera( mainCamera, new Rect(0, 0, 600, 600));
    }

    Texture2D CaptureCamera( Camera camera, Rect rect)
    {

        RenderTexture rt = new RenderTexture((int)rect.width, (int)rect.height, -1);

        camera.targetTexture = rt;
        camera.Render();
        RenderTexture.active = rt;
        Texture2D screenShot = new Texture2D(600, 600, TextureFormat.RGB24, false);
        // RenderTexture.active读取像素
        screenShot.ReadPixels(rect, 0, 0);  
        screenShot.Apply();

        // 重置相关参数,以使用camera继续在屏幕上显示  
        camera.targetTexture = null;
        RenderTexture.active = null;
        GameObject.Destroy(rt);
        // 最后将这些纹理数据,成一个png图片文件  
        byte[] bytes = screenShot.EncodeToPNG();
        // 图片名字为当前的时间
        string name = string.Format("/StreamingAssets/IMG_{0:D4}{1:D2}{2:D2}_{3:D2}{4:D2}{5:D2}.png", System.DateTime.Now.Year, System.DateTime.Now.Month, System.DateTime.Now.Day,
            System.DateTime.Now.Hour, System.DateTime.Now.Minute, 
                System.DateTime.Now.Second);
        // 路径
        string filename = Application.dataPath + name;
        System.IO.File.WriteAllBytes(filename, bytes);
        Debug.Log(string.Format("截屏了一张照片: {0}", filename));

        return screenShot;
    }


}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值