此文章适合不太了解资源加载的萌新,有了入门基础之后再去github上搜大牛写的专业的资源加载方案才能得心应手,不然的话会看的很吃力或者说一脸懵逼。Unity里面关于资源加载我们都知道是下载更新AssetBundle,关于AssetBundle我之前的文章已经详细介绍过,没看过的朋友可以在看一下。下面介绍的资源加载的Demo有以下几点:
1.WWW下载图片资源
2.HTTP下载apk文件,并且支持断点续传,并且显示加载进度条
3.HTTP多线程下载文件
部分核心代码和讲解
WWW下载
思路:
1.WWW下载图片资源
2.HTTP下载apk文件,并且支持断点续传,并且显示加载进度条
3.HTTP多线程下载文件
WWW是Unity给我们封装的一个基于HTTP的简单类库,如果我们做很简单的下载,或者网络请求可以用这个类库,个人觉得这个封装的并不是很好,所以一般商业项目开发都不会使用这个,宁可自己去封装一个HTTP请求和下载的类库,可控性更好。仅仅是个人观点,不喜勿喷。
代码:
[C#]
纯文本查看
复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
using
UnityEngine;
using
System.Collections;
using
System;
using
System.IO;
public
class
WWWLoad
{
private
WWW www =
null
;
static
System.Diagnostics.Stopwatch stopWatch =
new
System.Diagnostics.Stopwatch();
/// <summary>
/// 下载文件
/// </summary>
public
IEnumerator DownFile(
string
url,
string
savePath, Action<WWW> process)
{
FileInfo file =
new
FileInfo(savePath);
stopWatch.Start();
UnityEngine.Debug.Log(
"Start:"
+ Time.realtimeSinceStartup);
www =
new
WWW(url);
while
(!www.isDone)
{
yield
return
0;
if
(process !=
null
)
process(www);
}
yield
return
www;
if
(www.isDone)
{
byte
[] bytes = www.bytes;
|