截图功能。图片名字为当前的年月日。
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;
}
}