大连中石油电子沙盘
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.3 KiB

4 years ago
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using UnityEngine;
using UnityEngine.UI;
public class ScreenCapture : MonoBehaviour
{
[DllImport("__Internal")]
public static extern void ScreenShotData(string data);
int number;
string filename;
public void onValueChanged(bool isOn)
{
if (isOn)
{
StartCoroutine(GetShot());
}
}
public void DisableToggle()
{
GetComponent<Toggle>().isOn = false;
}
private void Awake()
{
filename = Application.streamingAssetsPath + "/ScreenShot";
GetComponent<Toggle>().onValueChanged.AddListener(onValueChanged);
}
IEnumerator GetShot()
{
yield return new WaitForEndOfFrame();
int width = Screen.width;
int height = Screen.height;
Texture2D tex = new Texture2D(width, height, TextureFormat.RGB24, false);
tex.ReadPixels(new Rect(0, 0, width, height), 0, 0, true);
tex.Apply();
byte[] imagebytes = tex.EncodeToPNG();
System.IO.File.WriteAllBytes(filename + number++.ToString() + ".png", imagebytes);
yield return new WaitForSeconds(1f);
DisableToggle();
ResourceLoadWindow.Instance.LoadTextHintWindow("截图已保存", 2);
yield return new WaitForSeconds(30.0F);
}
}