38 lines
1.1 KiB
C#
38 lines
1.1 KiB
C#
|
|
using System;
|
|||
|
|
using System.Collections;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using UnityEngine;
|
|||
|
|
using UnityEngine.UI;
|
|||
|
|
|
|||
|
|
public class ScreenShot : MonoBehaviour
|
|||
|
|
{
|
|||
|
|
public Texture2D screenImage;
|
|||
|
|
public void Shot(Action<string> callBack)
|
|||
|
|
{
|
|||
|
|
//if (MVC.GetModel<KunChongModel>().IsKaoHe)
|
|||
|
|
//{
|
|||
|
|
// StartCoroutine(ScrrenCapture(callBack));
|
|||
|
|
//}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
IEnumerator ScrrenCapture(Action<string> callBack)
|
|||
|
|
{
|
|||
|
|
yield return new WaitForEndOfFrame();
|
|||
|
|
// 创建一个新的Texture2D对象,尺寸为屏幕当前分辨率
|
|||
|
|
screenImage = new Texture2D(Screen.width, Screen.height);
|
|||
|
|
// 读取屏幕上当前帧的像素
|
|||
|
|
screenImage.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0);
|
|||
|
|
screenImage.Apply();
|
|||
|
|
//生成Base64
|
|||
|
|
string base64 = "data:image/png;base64," + Texture2DToBase64(screenImage);
|
|||
|
|
// 清理
|
|||
|
|
callBack?.Invoke(base64);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public string Texture2DToBase64(Texture2D texture)
|
|||
|
|
{
|
|||
|
|
byte[] data = texture.EncodeToPNG();
|
|||
|
|
return Convert.ToBase64String(data);
|
|||
|
|
}
|
|||
|
|
}
|