NGUI 自定義貼圖
從網路上下載圖片 並顯示在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)方法,將網路獲取的網址傳入