Unity协程截图,WWWForm、WWW配合上传
生活随笔
收集整理的這篇文章主要介紹了
Unity协程截图,WWWForm、WWW配合上传
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
先說一下原理。。
截圖有兩種方法,第一種:
Application.CaptureScreenshot(url); ?
這個API可以截全屏并保存到指定路徑
這里我們不采用此方法
?
下面的代碼采用第二種方法,自己建一個Texture2D
這種方法靈活,操作性更高
?
WWWForm方法是用來提交到數據庫的
WWWForm wwwForm = new WWWForm();wwwForm.AddField(“Username”,name);wwwForm.AddField(“ID”,id);
WWW方法可以用來上傳和下載
//上傳
WWW www = new WWW(url,wwwForm);
//下載
WWW www = new WWW(url); ? ? 好啦,廢話不多說,下面上完整客戶端代碼 using System.IO;
using UnityEngine;
using System.Collections;public class Example : MonoBehaviour {void Start() {StartCoroutine(UploadPNG());}IEnumerator UploadPNG() {// 用協程等待屏幕渲染完成后再截圖yield return new WaitForEndOfFrame();// 創建一個Texture2D紋理用來保存截圖int width = Screen.width;int height = Screen.height;Texture2D tex = new Texture2D(width, height, TextureFormat.RGB32, false);// 將屏幕像素保存到新建的Texture2D(截圖原理)tex.ReadPixels(new Rect(0, 0, width, height), 0, 0);tex.Apply();// 將截圖編碼為PNG格式byte[] bytes = tex.EncodeToPNG();Destroy(tex);// 使用WWWForm,往數據庫添加數據WWWForm form = new WWWForm();form.AddField("frameCount", Time.frameCount.ToString());form.AddBinaryData("fileUpload", bytes);// 使用WWW上傳form的內容WWW w = new WWW(url, form);yield return w;if (w.error != null)print(w.error);elseprint("Finished Uploading Screenshot");}
}
聲明:此博客為個人學習之用,如與其他作品雷同,純屬巧合,并請明示指出
轉載于:https://www.cnblogs.com/fws94/p/6232055.html
總結
以上是生活随笔為你收集整理的Unity协程截图,WWWForm、WWW配合上传的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 孩子的孩子是什么歌啊
- 下一篇: 墨鱼干多少钱一斤