Unity截图
Posted 狂奔的老鳖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity截图相关的知识,希望对你有一定的参考价值。
什么都不说了,直接上代码。
using UnityEngine; using System.Collections; using System.IO; public class CutImage : MonoBehaviour { public Vector2 startPos; //鼠标开始位置 public Vector2 endPos; //鼠标结束位置 void Update() { if(Input.GetMouseButtonDown(0)) { startPos = Input.mousePosition; } if(Input.GetMouseButtonUp(0)) { endPos = Input.mousePosition; StartCoroutine(CreateImage()); //当鼠标按键抬起,开始截图 } } IEnumerator CreateImage() { int width = (int)(endPos.x - startPos.x); //图片宽 int height = (int)(startPos.y - endPos.y); //图片高 Texture2D image = new Texture2D(width, height,TextureFormat.ARGB32, true); //创建一个纹理 Rect rect = new Rect(startPos.x, Screen.height - (Screen.height - endPos.y), width, height); //在屏幕上截取一个矩形 yield return new WaitForEndOfFrame(); //等待帧结束 image.ReadPixels(rect,0, 0, true); //在屏幕的规定区域内读取像素 image.Apply(); //转化成图片 yield return image; byte[] bs = image.EncodeToPNG(); //把图片转化成二进制 File.WriteAllBytes(Application.dataPath + "/Image.png", bs); //把图片街道本地 yield return null; } }
以上是关于Unity截图的主要内容,如果未能解决你的问题,请参考以下文章
Unity报错:Read only asset Packages/com.xxxxx.xxx.xxxx/Editor/VSCodeDiscovery.cs.IPGSD has no meta(代码片段