using UnityEngine;
using System.Collections;
using System.Net;
using System.IO;
public class FileLoader : BaseBehaviour
{
void Start ()
{
m_httpReq = (HttpWebRequest)HttpWebRequest.Create("http://www.jb51.net?hl=zh-CN");
HttpWebResponse response = (HttpWebResponse)m_httpReq.GetResponse();
if (response.StatusCode != HttpStatusCode.PartialContent)
{
m_fs = new FileStream(Application.dataPath + "/zhCn.html",FileMode.Create);
}
m_ns = response.GetResponseStream();
}
void Update ()
{
m_readSize = m_ns.Read(m_buff,m_buff.Length);
if (m_readSize > 0)
{
m_fs.Write(m_buff,m_readSize);
}
else
{
m_fs.Close();
m_ns.Close();
}
}
private HttpWebRequest m_httpReq;
private Stream m_fs,m_ns;
private int m_readSize;
private byte[] m_buff = new byte[1024 * 8];
}
建议新建一个线程进行下载,否则会卡住ui主线程
参考我另外一篇文章
《unity增量更新(配置表、lua、资源)》
https://blog.csdn.net/linxinfa/article/details/93619223
文章末尾有多线程下载的逻辑
另,分享一个开源的Unity多线程下载Demo
https://github.com/ihaiucom/ihaiu.MultiThreadDownload