• 【Unity】鼠标划定范围然后截图~


    有时候要重复用某一个场景的某一个角度,都过去好几步了结果总不能再把已经打乱的场景物体再移动回去吧。so~智慧的我完成了伟大的偷懒。截图保存,什么时候要看,直接上图片以假乱真棒棒哒~

    当然这个功能还能用在很多地方,所以有拓展了一下鼠标自定义范围截图并保存在了文件夹下。然后就华丽丽的出现了下边这些代码。

    using UnityEngine;
    using System.Collections;
    
    public class jietu : MonoBehaviour {
    
        int w, h;
        Vector3 v1, v2;
        void Update()
        {
            //按下鼠标拖动直至松开鼠标划定范围,截图
            if (Input.GetMouseButtonDown(0))
            {
                v1 = Input.mousePosition;//鼠标按下位置~
            }
            if (Input.GetMouseButtonUp(0))
            {
                v2 = Input.mousePosition; //鼠标抬起位置~
                //计算鼠标划定范围的长和宽~~
                w = int.Parse(Mathf.Abs(v1.x - v2.x).ToString());
                h = int.Parse(Mathf.Abs(v1.y - v2.y).ToString());
                StartCoroutine(GetCapture());
            }
        }
        IEnumerator GetCapture()
        {
            //等待所有的摄像机跟GUI渲染完成
            yield return new WaitForEndOfFrame();
    
            Texture2D tex = new Texture2D(w, h, TextureFormat.RGB24, false);
            //----------------------------------------------------------------------------计算区域----------------------------------------------------
            float vx = (v1.x > v2.x) ? v2.x : v1.x;                                 //取较小的x,y作为起始点
            float vy = (v1.y > v2.y) ? v2.y : v1.y;
            tex.ReadPixels(new Rect(vx, vy, w, h), 0, 0, true);
            //-----------------------------------------------------------------------------------------------------------------------------------------
            byte[] imagebytes = tex.EncodeToPNG();//转化为png图
    
            tex.Compress(false);//对屏幕缓存进行压缩
            System.IO.File.WriteAllBytes(Application.dataPath + "/hehe.png", imagebytes);//存储png图
          
        }
    }
  • 相关阅读:
    第12章,存储类别、链接和内存管理
    第11章 字符串和字符串函数
    第10章 数组和指针
    第9章 函数
    第8章 字符输入/输出和输入验证
    第7章,c语言控制语句:分支和跳转
    第六章,处语言控制语句:循环
    中国互联网发展史
    世界互联网发展史
    世界计算机发展史
  • 原文地址:https://www.cnblogs.com/Feiyuzhu/p/4649340.html
Copyright © 2020-2023  润新知