欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

unity實現(xiàn)QQ截圖功能

 更新時間:2020年04月16日 10:54:23   作者:貪玩的孩紙時代  
這篇文章主要為大家詳細介紹了unity實現(xiàn)QQ截圖功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了unity實現(xiàn)QQ截圖功能的具體代碼,供大家參考,具體內(nèi)容如下

效果:

代碼如下:

using System.Collections;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using UnityEngine;
using NPinyin;
using System.IO;

public class NewBehaviourScript : MonoBehaviour {
 //截屏結(jié)束的位置
 private Vector3 e_pos;
 //是否繪制
 private bool isDraw;
 //繪制狀態(tài)
 private bool stateDraw;
 //開始繪制
 private bool stateDrawStart;
 //截屏開始的位置
 private Vector3 s_pos;
 Rect rect;
 public Material lineMaterial;

 private void Update()
 {
  if (stateDraw == true)
  {
   //按下鼠標(biāo)左鍵時,記錄當(dāng)前鼠標(biāo)的位置為開始截屏?xí)r的位置
   if (Input.GetMouseButtonDown(0))
   {
    stateDrawStart = true;
    s_pos = Input.mousePosition;
   }
   //鼠標(biāo)處于按下狀態(tài)時
   if (Input.GetMouseButton(0))
   {
    e_pos = Input.mousePosition;
    //可以開始繪制
    isDraw = true;
   }
   //抬起鼠標(biāo)左鍵時,記錄當(dāng)前鼠標(biāo)的位置為結(jié)束截屏?xí)r的位置
   if (Input.GetMouseButtonUp(0) && stateDrawStart == true)
   {
    //結(jié)束繪制
    isDraw = false;
    e_pos = Input.mousePosition;
    //獲取到截屏框起始點的位置,和寬高。
    rect = new Rect(Mathf.Min(s_pos.x, e_pos.x), Mathf.Min(s_pos.y, e_pos.y), Mathf.Abs(s_pos.x - e_pos.x), Mathf.Abs(s_pos.y - e_pos.y));
    //開啟繪制的協(xié)程方法
    StartCoroutine(Capsture(rect));
    stateDraw = false;
    stateDrawStart = false;
   }
  }
 }
 /// <summary>
 /// 保存截圖
 /// </summary>
 /// <param name="rect"></param>
 /// <returns></returns>
 IEnumerator Capsture(Rect rect)
 {
  yield return new WaitForEndOfFrame();

  //創(chuàng)建紋理(紋理貼圖的大小和截屏的大小相同)
  Texture2D tex = new Texture2D((int)rect.width, (int)rect.height, TextureFormat.RGB24, false);
  //讀取像素點
  tex.ReadPixels(rect, 0, 0);
  //將像素點應(yīng)用到紋理上,繪制圖片
  tex.Apply();
  //將圖片裝換成jpg的二進制格式,保存在byte數(shù)組中(計算機是以二進制的方式存儲數(shù)據(jù))
  byte[] result = tex.EncodeToPNG();
  //文件夾(如果StreamAssets文件夾不存在,在Assets文件下創(chuàng)建該文件夾)
  if (!Directory.Exists(Application.streamingAssetsPath))
   Directory.CreateDirectory(Application.streamingAssetsPath);
  //將截屏圖片存儲到本地
  string filename = Application.dataPath + "/StreamingAssets/Screenshot.png";
  File.WriteAllBytes(filename, result);
 }
 /// <summary>
 /// 用GL畫線
 /// </summary>
 void OnPostRender()
 {
  if (!isDraw) return;
  //print(s_pos);

  Vector3 sPos = Camera.main.ScreenToWorldPoint(s_pos + new Vector3(0, 0, 10));
  Vector3 ePos = Camera.main.ScreenToWorldPoint(e_pos + new Vector3(0, 0, 10));

  //print(string.Format("GL.....{0}, {1}", sPos, ePos));
  // Set your materials Done
  GL.PushMatrix();
  // yourMaterial.SetPass( );
  lineMaterial.SetPass(0);//告訴GL使用該材質(zhì)繪制
        // Draw your stuff
        //始終在最前面繪制
  GL.invertCulling = true;
  GL.Begin(GL.LINES);//開始繪制

  //GL.Vertex(sPos);
  //GL.Vertex(ePos);
  //如果想要繪制,矩形,將下面代碼啟動
  GL.Vertex(sPos);
  GL.Vertex(new Vector3(ePos.x, sPos.y, 0));


  GL.Vertex(new Vector3(ePos.x, sPos.y, 0));
  GL.Vertex(ePos);

  GL.Vertex(ePos);
  GL.Vertex(new Vector3(sPos.x, ePos.y, 0));

  GL.Vertex(new Vector3(sPos.x, ePos.y, 0));
  GL.Vertex(sPos);
  GL.End();//結(jié)束繪制

  GL.PopMatrix();
 }

 public void OnBtnClick() {
  stateDraw = true;
 }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C# 計算標(biāo)準(zhǔn)偏差相當(dāng)于Excel中的STDEV函數(shù)實例

    C# 計算標(biāo)準(zhǔn)偏差相當(dāng)于Excel中的STDEV函數(shù)實例

    下面小編就為大家?guī)硪黄狢# 計算標(biāo)準(zhǔn)偏差相當(dāng)于Excel中的STDEV函數(shù)實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • C#中Lambda表達式的用法

    C#中Lambda表達式的用法

    這篇文章介紹了C#中Lambda表達式的用法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C# 大數(shù)據(jù)導(dǎo)出word的假死報錯的處理方法

    C# 大數(shù)據(jù)導(dǎo)出word的假死報錯的處理方法

    C# 大數(shù)據(jù)導(dǎo)出word的假死報錯的處理方法,需要的朋友可以參考一下
    2013-03-03
  • c#文檔圖片自動糾偏

    c#文檔圖片自動糾偏

    最近找到一個不錯的文檔圖片自動糾偏的方法,現(xiàn)在跟大家分享一下,需要的朋友可以參考下
    2014-03-03
  • C#實現(xiàn)解析JSON的示例詳解

    C#實現(xiàn)解析JSON的示例詳解

    這篇文章主要為大家詳細介紹了使用C#實現(xiàn)解析JSON的相關(guān)知識,文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • C#中類與接口的區(qū)別講解

    C#中類與接口的區(qū)別講解

    本文詳細講解了C#中類與接口的區(qū)別,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#默認(rèn)雙緩沖技術(shù)實例分析

    C#默認(rèn)雙緩沖技術(shù)實例分析

    這篇文章主要介紹了C#默認(rèn)雙緩沖技術(shù),實例分析了雙緩沖技術(shù)的設(shè)置與實現(xiàn)技巧,需要的朋友可以參考下
    2015-06-06
  • 淺談C#單例模式的實現(xiàn)和性能對比

    淺談C#單例模式的實現(xiàn)和性能對比

    這篇文章主要介紹了淺談C#單例模式的實現(xiàn)和性能對比的相關(guān)資料,詳細的介紹了6種實現(xiàn)方式,需要的朋友可以參考下
    2017-09-09
  • 淺談C#中的值類型和引用類型

    淺談C#中的值類型和引用類型

    在C#中值類型的變量直接存儲數(shù)據(jù),而引用類型的變量持有的是數(shù)據(jù)的引用,數(shù)據(jù)存儲在數(shù)據(jù)堆中。下面我們來簡單談?wù)凜#中的值類型和引用類型
    2016-06-06
  • C#指針變量與unsafe的實現(xiàn)

    C#指針變量與unsafe的實現(xiàn)

    本文主要介紹了C#指針變量與unsafe的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03

最新評論