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");
        }
    }


    声明:此博客为个人学习之用,如与其他作品雷同,纯属巧合,并请明示指出
  • 相关阅读:
    交换排序:冒泡排序vs快速排序
    SSO
    MVC源码分析
    python_正则表达式概述
    (爬虫向)python_json学习笔记
    Pycharm Debug调试心得
    HTML学习二_HTML常用的行级标签,常用实体字符及表单标签
    吴恩达机器学习笔记3-代价函数II(cost function)
    吴恩达机器学习笔记2-代价函数I(cost function)
    Python面向对象1:类与对象
  • 原文地址:https://www.cnblogs.com/fws94/p/6232055.html
Copyright © 2011-2022 走看看