WWW类学习

WWW下载

通常情况下使用www类下载跟协程不分家,这里简单的理解一下我的浅见,协程是嫁接在主程序上的一种程序,需要跟线程区分,其实是主程序的一种,可以使用 ·StartCoroutine("MethodName"),来开启一个协程,
www类是我们常用的下载类,主要是介绍里面的几种下载方法,
 - WWW www = new WWW(url); 这是一种ByteBuffer传输,属于长连接,大部分游戏都是使用这种方式,具体的优缺点不是很了解,所以详细内容请自行了解。
 - WWW www = new WWW(url,WWWForm)	这是一种WWWForm传输,属于短链接,大部分的社交软件在使用,具体的优缺点不是很了解,所以详细内容请自行了解。
 - WWW.LoadFromCacheOrDownload(url,(int)version),这个跟ByteBuffer传输是一样的,但是这个会保留一个缓存在电脑中,当你进行了下载,再次下载的时候就会读取缓存,所以速度跟效率都比较好些。
我这里主要是处理从网络上下载的图片保存到目录中,并在需要的时候load出来,附上工程代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System.IO;
public class DemoLoad : MonoBehaviour {

	private Image mImage;
	private Button mDownBtn;
	private GameObject mCanvas;
	private string mSavePath;
    private string mUrl = "http://xxx.xxxx.xxx/%E6%A8%AA%E7%AB%96%E7%89%88.png";
	// Use this for initialization
	void Start () {
		mCanvas = GameObject.Find("Canvas");
		mDownBtn =mCanvas.transform.Find("Button").GetComponent<Button>();
		mImage = mCanvas.transform.Find("Image").GetComponent<Image>();
		mDownBtn.onClick.AddListener(Down);

		mSavePath = Application.dataPath+"/DownLoadDemo/Resources/Image/picture.jpg";
	}
	void Down(){
		StartCoroutine("DownUrl");
	}
	IEnumerator DownUrl(){

		WWW www = WWW.LoadFromCacheOrDownload(mUrl,1);
		yield return www;
		Texture2D texture= www.texture;
		byte[] bytes = texture.EncodeToPNG();
		File.WriteAllBytes(mSavePath,bytes);

		mImage.sprite = Sprite.Create(texture,new Rect(0,0,texture.width,texture.height),new Vector2(0,0));



	}
	
	
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值