Unity使用HttpWebRequest远程下载文件

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

 

相关文章

这篇文章将为大家详细讲解有关Unity3D中如何通过Animator动画...
这篇文章主要介绍了Unity3D如何播放游戏视频,具有一定借鉴价...
这篇文章给大家分享的是有关Unity3D各平台路径是什么的内容。...
小编给大家分享一下Unity3D如何实现移动平台上的角色阴影,希...
如何解析基于Unity3D的平坦四叉树地形与Virtual Texture的分...
这篇文章主要介绍Unity3D如何实现动态分辨率降低渲染开销,文...