团结实现截屏以及根据相机画面截图的方法

  介绍

这篇文章主要讲解了团结实现截屏以及根据相机画面截图的方法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

在游戏开发和软件开发中,经常需要截图的功能,分带界面的截图和不带用户界面的截图功能。代码如下:

;
  使用System.Collections.Generic;
  使用UnityEngine;
  
  公共静态类ScreenShotForCamera {
  
  公共静态孔隙CaptureScreen (string _path=null)
  {
  如果(_path==null)
  _path=癝creenshot.png";
  
  应用程序。CaptureScreenshot (_path 0);
  }
  
  公共静态Texture2D CaptureScreen(矩形矩形,bool _isCreatePhoto=false,字符串_path=null)
  {//先创建一个的空纹理,大小可根据实现需要来设置
  Texture2D截图=new Texture2D(矩形(int)。宽度、矩形(int)。高度,TextureFormat。RGB24、假);//读取屏幕像素信息并存储为纹理数据,
  截图。ReadPixels(矩形,0,0);
  screenShot.Apply ();//然后将这些纹理数据,成一个png图片文件
  如果(_isCreatePhoto)
  {
  如果(_path==null)
  _path=应用程序。dataPath公司+“/Screenshot.png";
  
  byte[]字节=screenShot.EncodeToPNG ();
  字符串文件名=_path;
  System.IO.File。WriteAllBytes(文件名,字节);
  Debug.Log (string.Format(“截屏了一张图片:{0}“,文件名));
  }//最后,我返回这个Texture2d对象,这样我们直接,所这个截图图示在游戏中,当然这个根据自己的需求的。
  返回屏幕截图;
  }//公共静态Texture2D CaptureCamera (ref相机_camera,矩形_rect, int _destX, int _destY, bool _isCreatePhoto=false,字符串_path=null)
  {
  RenderTexture RenderTexture=new RenderTexture (_rect (int)。宽度,_rect (int)。高度,24日RenderTextureFormat.ARGB32);
  _camera。targetTexture=renderTexture;
  _camera.Render ();//激活这个renderTexture,并从中中读取像素
  RenderTexture。积极=_camera.targetTexture;
  Texture2D截图=new Texture2D (_rect (int)。宽度,_rect (int)。高度,TextureFormat。ARGB32、假);
  截图。ReadPixels (_rect _destX _destY);//从(_destX _destY)坐标开始读取_rect大小的图片
  screenShot.Apply ();//重置参数//_camera。targetTexture=零;
  RenderTexture。积极=零;//GameObject.Destroy (renderTexture);//生成PNG图片
  如果(_isCreatePhoto)
  {
  如果(_path==null)
  _path=应用程序。dataPath公司+“/Screenshot.png";
  
  byte[]字节=screenShot.EncodeToPNG ();
  字符串文件名=_path;
  System.IO.File。WriteAllBytes(文件名,字节);
  Debug.Log (string.Format(“截屏了一张照片:{0}“,文件名));
  }
  
  返回屏幕截图;
  }
  }

小编再为大家分享一段:团结实现截屏功能,希望可以帮到大家

公共类截图:MonoBehaviour
  {
  
  空白>看完上述内容,是不是对统一实现截屏以及根据相机画面截图的方法有进一步的了解,如果还想学习更多内容,欢迎关注行业资讯频道。

团结实现截屏以及根据相机画面截图的方法