zoukankan      html  css  js  c++  java
  • 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);
            else
                print("Finished Uploading Screenshot");
        }
    }


    声明:此博客为个人学习之用,如与其他作品雷同,纯属巧合,并请明示指出
  • 相关阅读:
    UVa 1354 天平难题 (枚举二叉树)
    广西邀请赛总结
    UVa 12118 检查员的难题 (dfs判连通, 构造欧拉通路)
    UVA
    Uva 127 "Accordian" Patience (模拟)
    UVA 10539 Almost Prime Numbers( 素数因子)
    HDU 1272 小希的迷宫(并查集)
    HDU 1213 How Many Tables (并查集)
    POJ 2236 Wireless Network(并查集)
    HDU 1233 还是畅通工程 ( Kruskal或Prim)
  • 原文地址:https://www.cnblogs.com/fws94/p/6232055.html
Copyright © 2011-2022 走看看