最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

本文實(shí)例為大家分享了unity實(shí)現(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)左鍵時(shí),記錄當(dāng)前鼠標(biāo)的位置為開始截屏?xí)r的位置
   if (Input.GetMouseButtonDown(0))
   {
    stateDrawStart = true;
    s_pos = Input.mousePosition;
   }
   //鼠標(biāo)處于按下狀態(tài)時(shí)
   if (Input.GetMouseButton(0))
   {
    e_pos = Input.mousePosition;
    //可以開始繪制
    isDraw = true;
   }
   //抬起鼠標(biāo)左鍵時(shí),記錄當(dāng)前鼠標(biāo)的位置為結(jié)束截屏?xí)r的位置
   if (Input.GetMouseButtonUp(0) && stateDrawStart == true)
   {
    //結(jié)束繪制
    isDraw = false;
    e_pos = Input.mousePosition;
    //獲取到截屏框起始點(diǎn)的位置,和寬高。
    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);
  //讀取像素點(diǎn)
  tex.ReadPixels(rect, 0, 0);
  //將像素點(diǎn)應(yīng)用到紋理上,繪制圖片
  tex.Apply();
  //將圖片裝換成jpg的二進(jìn)制格式,保存在byte數(shù)組中(計(jì)算機(jī)是以二進(jìn)制的方式存儲(chǔ)數(shù)據(jù))
  byte[] result = tex.EncodeToPNG();
  //文件夾(如果StreamAssets文件夾不存在,在Assets文件下創(chuàng)建該文件夾)
  if (!Directory.Exists(Application.streamingAssetsPath))
   Directory.CreateDirectory(Application.streamingAssetsPath);
  //將截屏圖片存儲(chǔ)到本地
  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);
  //如果想要繪制,矩形,將下面代碼啟動(dòng)
  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)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 采用easyui tree編寫簡單角色權(quán)限代碼的方法

    采用easyui tree編寫簡單角色權(quán)限代碼的方法

    本文主要介紹了如何采用easyui tree編寫簡單角色權(quán)限代碼,文章思路清晰,需要的朋友可以參考下
    2015-07-07
  • C#實(shí)現(xiàn)簡單學(xué)生成績管理系統(tǒng)

    C#實(shí)現(xiàn)簡單學(xué)生成績管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)簡單學(xué)生成績管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • c# 類型的字段和方法設(shè)計(jì)建議

    c# 類型的字段和方法設(shè)計(jì)建議

    這篇文章主要介紹了c# 字段和方法設(shè)計(jì)建議,幫助大家更好的理解和使用c#編程語言,感興趣的朋友可以了解下
    2020-11-11
  • C#實(shí)現(xiàn)UDP通信方式

    C#實(shí)現(xiàn)UDP通信方式

    文章介紹了如何使用C#實(shí)現(xiàn)UDP通信,包括UDP服務(wù)器和客戶端的實(shí)現(xiàn)步驟和示例代碼,服務(wù)器關(guān)鍵類為UdpClient和IPEndPoint,實(shí)例化對(duì)象后可以通過異步任務(wù)發(fā)送數(shù)據(jù)并接收數(shù)據(jù),客戶端同樣使用UdpClient和IPEndPoint,連接到遠(yuǎn)程服務(wù)器后開新任務(wù)接收數(shù)據(jù)
    2025-01-01
  • C#獲取并修改文件擴(kuò)展名的方法

    C#獲取并修改文件擴(kuò)展名的方法

    這篇文章主要介紹了C#獲取并修改文件擴(kuò)展名的方法,實(shí)例分析了C#編程方式修改文件擴(kuò)展名的技巧,涉及Path類的使用方法,需要的朋友可以參考下
    2015-04-04
  • C#獲取注冊(cè)表指定鍵值操作

    C#獲取注冊(cè)表指定鍵值操作

    這篇文章主要介紹了C#獲取注冊(cè)表指定鍵值操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 使用C#實(shí)現(xiàn)解析Excel公式

    使用C#實(shí)現(xiàn)解析Excel公式

    在日常工作中,我們經(jīng)常需要在Excel中使用公式對(duì)表中數(shù)據(jù)進(jìn)行計(jì)算和分析,所以本文小編主要來和大家介紹一下如何在C#中實(shí)現(xiàn)解析Excel公式,感興趣的可以了解下
    2024-02-02
  • Unity3D開發(fā)之獲取所有的子對(duì)象的方法詳解

    Unity3D開發(fā)之獲取所有的子對(duì)象的方法詳解

    這篇文章主要為大家詳細(xì)介紹了三種Unity3D中獲取所有的子對(duì)象(child)的方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-01-01
  • 在C#中使用Channels的完整教程

    在C#中使用Channels的完整教程

    這篇文章主要介紹了在C#中使用Channels的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • C#數(shù)字圖象處理之圖像灰度化方法

    C#數(shù)字圖象處理之圖像灰度化方法

    這篇文章主要介紹了C#數(shù)字圖象處理之圖像灰度化方法,涉及C#基于Bitmap類操作圖像的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04

最新評(píng)論

甘德县| 平舆县| 安吉县| 长沙县| 罗江县| 屯门区| 双鸭山市| 屏南县| 青田县| 密山市| 杭锦后旗| 郑州市| 广德县| 昭通市| 无为县| 靖边县| 汶川县| 盐池县| 台南市| 象山县| 万荣县| 珠海市| 马边| 三明市| 尚志市| 云龙县| 巨鹿县| 龙南县| 顺平县| 塘沽区| 灌阳县| 常德市| 岱山县| 芦山县| 罗平县| 西宁市| 连山| 东山县| 舒兰市| 饶河县| 容城县|