unity3d 截屏
原地址:http://www.cnblogs.com/88999660/archive/2013/01/21/2869747.html
void OnGUI(){
if(GUI.Button(new Rect(10,70,50,50),"ScreenShot")){
StartCoroutine(ScreenShot()); //协程调用
}
}
IEnumerator ScreenShot(){
int width = Screen.width;
int height = Screen.height;
yield return new WaitForEndOfFrame(); //去掉协程试试看会发生什么。
Texture2D tex = new Texture2D(width,height,TextureFormat.RGB24,false);//设置Texture2D
tex.ReadPixels(new Rect(0,0,width,height),0,0);//获取Pixels
tex.Apply();//应用改变
byte[] bytes = tex.EncodeToPNG();//转换为byte[]
Destroy(tex);
Stream flstr = new FileStream(@"d:\1.png", FileMode.Create);//文件操作
BinaryWriter sw = new BinaryWriter(flstr, Encoding.Unicode);
sw.Write(bytes);
sw.Close();
flstr.Close();
}
另一种方法:
using UnityEngine; using System.Collections; public class example : MonoBehaviour { void OnMouseDown() { Application.CaptureScreenshot("Screenshot.png"); } } function OnGUI(){ if(GUI.Button(Rect(Screen.width*0.5-50,Screen.height*0.5-50,100,100),"screen")){ Application.CaptureScreenshot("Screenshot.png"); } }
这张Screenshot.png图片被存在了当前工程的子目录下了。

浙公网安备 33010602011771号