UnityWebRequest进度条设计(Unity取代WWW的方案?)

这两天逛Unity api时,发现UnityWebRequest,官方文档介绍看这里。,脚本api看这里。WWW存在很多问题。
其中之一,www在ios下大文件存在缺陷。如果你们对于http的header部分操作频繁的话,就会出现头痛的事情了。

1、字符集编码。很难控制。有时只能让服务器妥协一下。
2、header的大小写问题。有时会出现大小写字符改变的问题,注意是“有时”,这种非必现的问题,往往是痛苦的根源啊……
现在有了UnityWebRequest,就可以方便的实现一些以前难实现的功能。
以前实现进度条功能,可以在yield return www之前用while循环获得下载进度。这样会阻塞程序。如果东西很大,还可能会造成卡顿。
现在我用UnityWebRequest实现了一个进度条。我们先看效果:


DownLoad.gif

unity在5.4之后的版本才添加这个api,所以在用5.4以上的unity使用,我这里用的是unity2017.2的版本。上代码:

using System;
using System.Collections;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;

public class WebRequest : MonoBehaviour {

    public Slider slider;
    public Text text;//内容显示
    public Text progressText;//进度显示

    void Start()    {
        StartCoroutine(GetText());
    }
    IEnumerator GetText()    {
        using (UnityWebRequest uwr = UnityWebRequest.Get("https://nj01ct01.baidupcs.com/file/dbd83a3df9b920e7706cd0cca15ff6a8?bkt=p3-1400dbd83a3df9b920e7706cd0cca15ff6a8f7449fac00000019680a&fid=3423361126-250528-364549440400582&time=1514252723&sign=FDTAXGERLQBHSK-DCb740ccc5511e5e8fedcff06b081203-Mh6xyHm3%2Fqt7X6cRxEw50X%2BLj4Q%3D&to=63&size=1665034&sta_dx=1665034&sta_cs=1&sta_ft=txt&sta_ct=0&sta_mt=0&fm2=MH,Yangquan,Anywhere,,guangdong,ct&vuk=3423361126&iv=0&newver=1&newfm=1&secfm=1&flow_ver=3&pkey=1400dbd83a3df9b920e7706cd0cca15ff6a8f7449fac00000019680a&sl=74317902&expires=8h&rt=pr&r=496061556&mlogid=8335651897587839115&vbdid=481251059&fin=test.txt&fn=test.txt&rtype=1&dp-logid=8335651897587839115&dp-callid=0.1.1&hps=1&tsl=177&csl=177&csign=aThxLmvlcWV08TOj13LIu308UFo%3D&so=0&ut=6&uter=4&serv=0&uc=3885765770&ic=3860577397&ti=5e666840c78f1973cbe71d11839bdeeaa56ae1a366feac0c305a5e1275657320&by=themis"))
        {
            uwr.SendWebRequest();//开始请求
            while (!uwr.isDone)
            {
                //Debug.LogError(www.downloadProgress);
                slider.value = uwr.downloadProgress;//展示下载进度
                progressText.text = Math.Floor(uwr.downloadProgress * 100) + "%";
                yield return 1;
            }
            if (uwr.isDone)
            {
                progressText.text = 100 + "%";
                slider.value = 1;
            }
            if (uwr.isNetworkError || uwr.isHttpError)
            {
                Debug.Log(uwr.error);
            }
            else
            {
                //显示下载后的文本数据
                Debug.Log(uwr.downloadHandler.text);
                text.text = uwr.downloadHandler.text;
                byte[] results = uwr.downloadHandler.data;
            }
        }
    }
}

SendWebRequest()之后,就会触发一个请求。之后的操作会在unity主线程里开始请求数据。
附工程地址:
链接:https://pan.baidu.com/s/1pLh0IhH 密码:tnuw

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,110评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,443评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,474评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,881评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,902评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,698评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,418评论 3 419
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,332评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,796评论 1 316
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,968评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,110评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,792评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,455评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,003评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,130评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,348评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,047评论 2 355

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,664评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,176评论 25 707