码迷,mamicode.com
首页 > Web开发 > 详细

资源的下载与上传——02上传

时间:2015-11-05 18:11:12      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

学习笔记适合新手,如有错误请指正。?号处也请各位指点下,谢谢。

上传

从服务器下载资源时,我们通常需要告诉服务器设备信息、用户信息等以便下载对应资源

参数或者文件可以通过UnityEngine.WWWForm类作为WWW的参数上传

设备类型可以通过APPlication.platform得到,例如:RuntimePlatform.IphonePlayer或者RuntimePlatform.Android

设备内存大小尅通过SystemInfo.systemMemorySize得到,例如:服务器通过内存大小来决定返回给客户端普通资源还是高清资源

实例演示如何使用UnityEngine.WWWForm,模拟向服务器上传数据,服务器根据数据返回对应资料的过程,还可以通过UnityEngine.WWWForm上传用户信息以及高分记录等数据

1准备文档“info.text”作为被下载的内容

2新建一个场景

3新建游戏对象并命名为“WWWMAnager”,为其增加脚本如下:

using UnityEngine;
using System.Collections;

public class C_13_2_1: MonoBehaviour {
    private string address;
    private WWWForm form;
    void Awake()
    {
        //地址
        address = "file://"+Application.dataPath+"/Chapter13/info.txt";
        //创建WWWForm并添加版本号等信息
        form = new WWWForm ();
        form.AddField ("version", 1);//游戏版本号
        form.AddField ("username", "John");//用户名
        form.AddField ("Device", Application.platform.ToString());//设备类型
        form.AddField ("Memory", SystemInfo.systemMemorySize);//设备内存大小
    }
    
    void OnGUI()
    {
        if (GUILayout.Button ("Load")) {
            //使用协程下载
            StartCoroutine(Load(address));
        }
    }
    
    IEnumerator Load(string url)
    {
        Debug.Log (url);
        //向url地址上传form并下载资料
        WWW www = new WWW (url,form);
        yield return www;
        string text = www.text;
        Debug.Log (text);
    }
}

实例上传屏幕截图如下:

using UnityEngine;
using System.Collections;
using System.IO;
public class C_13_2_2 : MonoBehaviour {
    public string screenShotURL;

    void OnGUI () {
        if (GUILayout.Button ("Upload")) {
            StartCoroutine (UploadPNG ());
        }
    }
    
    IEnumerator UploadPNG() {
        //等待当前帧都渲染完成时
        yield return new WaitForEndOfFrame();

        string path = Application.dataPath + "/shot.png";
        //截屏并储存
        Application.CaptureScreenshot (path);
        //读取截屏图片
        byte[] bytes = File.ReadAllBytes (path);
        //使用form上传图片
        WWWForm form = new WWWForm();
        form.AddBinaryData("fileUpload", bytes, "screenShot.png", "image/png");
        WWW w = new WWW(screenShotURL, form);
        yield return w;
        if (!string.IsNullOrEmpty(w.error)) {
            print("有错误:"+w.error);
        }
        else {
            print("完成上传");
        }
    }
}

资源的下载与上传——02上传

标签:

原文地址:http://www.cnblogs.com/kubll/p/4940287.html

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!