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-,Screen.height*0.5-,,),"screen")){
Application.CaptureScreenshot("Screenshot.png");
}
}

这张Screenshot.png图片被存在了当前工程的子目录下了。

上一篇:警告1909。无法创建快捷方式VMware Workstation Pro.Ink。解决方法(附 VMware_workstation 12的安装方法)


下一篇:Windows7 中常用的一些DOS命令总结