从网络上下载图片 并显示在NGUI
用例:接微信登录 获取用户微信头像 并在项目中显示用户头像
这篇写的是:在项目中显示用户头像
using UnityEngine;
using System.Collections;
using System;
public class DIYImage : MonoBehaviour
{
private UISprite m_img;
//自用的Atlas
private UIAtlas m_uiAtlas;
private void Start()
{
m_img = GetComponent<UISprite>();
}
//将网络获取的网址传入
public void LoadImageFunc(string ImageURL)
{
if (ImageURL == "")
{
return;
}
if (gameObject.activeInHierarchy)
{
StartCoroutine(loadasset(ImageURL));
}
}
//下载图片
IEnumerator loadasset(string url)
{
WWW www = new WWW(url);
yield return www;
if (www.error == null)
{
ImageLoad(www.texture);
}
else
Debug.Log(www.error);
}
private void ImageLoad(Texture2D tex)
{
Material mat;
Shader shader = Shader.Find("Unlit/Transparent Colored");
mat = new Material(shader);
m_uiAtlas = this.gameObject.AddComponent<UIAtlas>();
m_uiAtlas.spriteMaterial = mat;
//设定贴图
m_uiAtlas.spriteMaterial.mainTexture = tex;
//为对应UISprite接口,给Atlas加对象
UISpriteData sprite = new UISpriteData();
sprite.name = (m_img.atlas.spriteList.Count + 1).ToString();
sprite.width = sprite.height = tex.width;
m_uiAtlas.spriteList.Clear();
m_uiAtlas.spriteList.Add(sprite);
//设置完成
m_img.atlas = m_uiAtlas;
m_img.spriteName = sprite.name;
}
}
用法:调用LoadImageFunc(string ImageURL)方法,将网络获取的网址传入