Unity_ngui_从网络获取图片资源
2013-12-12 04:30
288 查看
1.创建ngui一个 ui 在plane下面添加一个空物体,然后在添加一个脚本uiTexure,
2.绑定一下代码。
2.绑定一下代码。
using System; using System.IO; using System.Text; using UnityEngine; using System.Collections; using System.Collections.Generic; using System.Security.Cryptography; public class LoadWebImage : MonoBehaviour { public string url; private Texture texture; private UIAtlas uiatlas; // Use this for initialization void Start () { if(null !=url) { StartCoroutine(LoadImage(url)); } } IEnumerator LoadImage(string url){ bool exists = Exits(url); if(exists) { url = "file:///"+Path(url); Debug.Log("url---"+url); }else { Debug.Log("load image from www:" + url); } WWW www = new WWW(url); yield return www; if(string.IsNullOrEmpty(www.error) ) { SetTexture(www.texture); if(!exists) { Save(www); } } else { Debug.LogError("download image [url=" + www.url + "] error!" + www.error); } } /// <summary> /// 缓存的基础路径 /// </summary> string BasePath { get { Debug.Log("Application--"+Application.persistentDataPath); return Application.persistentDataPath + "/Images/"; } } /// <summary> /// 获取缓存路径 /// </summary> string Path(string url) { return BasePath +""+ url.Trim() + ".img"; } /// <summary> /// 检测缓存是否存在 /// </summary> bool Exits(string url) { #if !UNITY_WEBPLAYER return File.Exists(Path(url)); #else return false; #endif } /// <summary> /// 保持图片 /// </summary> void Save(WWW www) { #if !UNITY_WEBPLAYER try { if (!Directory.Exists(BasePath)) { Directory.CreateDirectory(BasePath); } File.WriteAllBytes(Path(www.url),www.bytes); } catch(Exception e) { } #endif } /// <summary> /// 填充纹理 /// </summary> void SetTexture(Texture2D img) { //texture = img; //GUI texture if(guiTexture != null) { guiTexture.texture = img; return; } //NGUI texture UITexture texture = GetComponent<UITexture>(); if(texture != null) { texture.mainTexture = img; return; } //NGUI sprite // UISprite sprite = GetComponent<UISprite>(); // if(sprite != null) // { // img.name = "main"; // List<Texture> texs = new List<Texture>(); // texs.Add(img); // uiatlas = new UIAtlas(); // //uiatlas.spriteList.Add = texs; // // sprite.atlas = uiatlas; // sprite.spriteName = "main"; // return; // } } void OnDestroy() { GameObject.Destroy(texture); GameObject.Destroy(uiatlas); } }
相关文章推荐
- Unity+NGUI打造网络图片异步加载和本地缓存工具(一)
- 手机影音第十三天,xutils3、Glide的使用获取网络图片;下拉、上滑刷新;缓存网络资源
- Unity从网络/本地异步获取图片(微信头像)
- Unity+NGUI打造网络图片异步加载与本地缓存工具类(二)
- 根据网络图片地址获取资源的字节流
- Unity动态获取网络代码资源
- Unity+NGUI打造网络图片异步加载与本地缓存工具类
- ListView异步加载图片是非常实用的方法,凡是是要通过网络获取图片资源一般使用这种方法比较好,用户体验好,下面就说实现方法,先贴上主方法的代码:
- NetImageTest获取网络中的图片资源
- Android 异步获取网络图片Bitmap资源
- Android开发之异步获取并下载网络资源-下载图片和下载文本内容
- 通过接口获取网络资源--json与图片的工具类
- 从网络获取资源(图片)
- 获取网络资源图片
- 获取网络资源图片xml
- Unity+NGUI打造网络图片异步加载与本地缓存工具类(一)
- Android进阶2之Https访问网络资源(获取网络图片)
- 1、Android网络编程之获取网络图片资源
- Android进阶2之Https访问网络资源(获取网络图片)
- 记录--java获取网络资源(图片、音频等)保存本地