Unity3d-WWW实现图片资源显示以及保存和本地加载
本文固定连接:http://blog.csdn.net/u013108312/article/details/52712844
WWW实现图片资源显示以及保存和本地加载
using UnityEngine;
using System.Collections;
using System.IO;
using UnityEditor;
enum GetPicType
{
DownLoad = 0,
LocalLoad,
}
public class Picture : MonoBehaviour
{
//这里是本地的ip地址
string url = "http://127.0.0.1:80000/1.jpg";
/// <summary>
/// 网络下载的图片
/// </summary>
private Texture2D img = null;
/// <summary>
/// 本地图片
/// </summary>
private Texture2D img2 = null;
private bool downloadOK = false;
void OnGUI()
{
if (this.img != null)
GUI.DrawTexture(new Rect(0, 0, 200, 300), this.img);
if (this.img2 != null)
GUI.DrawTexture(new Rect(320, 0, 200, 300), this.img2);
if (GUI.Button(new Rect(210, 0, 100, 20), "显示网络图片"))
{
StartCoroutine(this.DownLoadTexture(this.url, GetPicType.DownLoad));
}
if (GUI.Button(new Rect(210, 50, 100, 20), "显示本地图片"))
{
if (this.downloadOK)
{
StartCoroutine(DownLoadTexture("file://" + Application.streamingAssetsPath + "/1.png", GetPicType.LocalLoad));
}
else
{
Debug.LogError("没有下载完毕");
}
}
}
IEnumerator DownLoadTexture(string url, GetPicType getType)
{
WWW www = new WWW(url);
Texture2D tempImage;
yield return www;
if (www.isDone && www.error == null)
{
switch (getType)
{
case GetPicType.DownLoad:
{
this.img = www.texture;
tempImage = this.img;
Debug.Log(tempImage.width + " " + tempImage.height);
break;
}
case GetPicType.LocalLoad:
this.img2 = www.texture;
tempImage = this.img;
Debug.Log(tempImage.width + " " + tempImage.height);
break;
default:
tempImage = null;
break;
}
if (tempImage != null)
{
byte[] data = tempImage.EncodeToPNG();
File.WriteAllBytes(Application.streamingAssetsPath + "/1.png", data);
this.downloadOK = true;
}
}
}
}