Unity3d截图两种方式

方式一:

 

/// <summary>
 /// 截屏显示部分
 /// </summary>
 private WWW www;
 public string path;//图片路径
 private Texture2D textrue;//
 private bool isShow = false;//是否显示图片
 //获取存取地址
 void platform()
 {
  if(Application.platform == RuntimePlatform.Android)
  {
   path = Application.persistentDataPath;
  }else if(Application.platform == RuntimePlatform.IPhonePlayer)
  {
   path = Application.persistentDataPath;
  }else if(Application.platform == RuntimePlatform.WindowsEditor)
  {
   path = Application.dataPath;
   path = path.Replace("/Assets",null);
  }
  path = path + "/screenCapture.png";
 }
 IEnumerator GetCapture()
 {
  yield return new WaitForEndOfFrame();
  Texture2D tex = new Texture2D(Screen.width,Screen.height,TextureFormat.RGB24,false);
  tex.ReadPixels(new Rect(0,0,Screen.width,Screen.height),0,0);
  tex.Apply();
  byte[] imagebytes = tex.EncodeToPNG();//转化为png图
  tex.Compress(false);//对屏幕缓存进行压缩

  try
  {
   FileStream f = new FileStream(path,FileMode.Create);
   f.Write(imagebytes,0,imagebytes.Length); //保存
  }
  catch
  {
   if(MyDebug.instance.isLog)
    Debug.Log("保存图片失败,请重试.");
  }
  yield return new WaitForSeconds(0.1f);

  www = new WWW("file://"+ path);//读取
  yield return www;
  textrue = www.texture;
  isShow = true;
 }
    public void ScreenShot()
    {
        platform();
        StartCoroutine(GetCapture());
    }

 

方式二:

 

/// <summary>
/// 截屏显示部分
/// </summary>
public string path;//图片路径
//获取存取地址
void platform()
{
if(Application.platform == RuntimePlatform.Android)
{
path = Application.persistentDataPath;
}else if(Application.platform == RuntimePlatform.IPhonePlayer)
{
path = Application.persistentDataPath;
}else if(Application.platform == RuntimePlatform.WindowsEditor)
{
path = Application.dataPath;
path = path.Replace("/Assets",null);
}
path = path + "/screenCapture.png";
}
public void ScreenShot()
{
platform();
Application.CaptureScreenshot("screenCapture.png",1);
}

 

 

转载于:https://www.cnblogs.com/luhaixing/p/3658924.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值