1. 程式人生 > >Unity--自定義任意大小截圖功能

Unity--自定義任意大小截圖功能

最近需要到截圖儲存功能,簡單做個筆記記錄一下。

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