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(代码片段

如何在 Android 上的 Unity 中禁用用于屏幕截图的游戏对象?

来自原生 iOS 的 Unity AR 视图的屏幕截图

Unity 截图选择框,中间全透明,边缘半透明

unity实现游戏界面截图

如何在 Android 片段中禁用屏幕截图?