/// <summary> /// Web上からテクスチャを取得する。 /// キャッシュにあれば、キャッシュから返す /// </summary> /// <param name="url"></param> /// <returns></returns> public IEnumerator GetWebTexutre(string url) { //ディクショナリ存在チェック if (DicImage.ContainsKey(url)) { //ファイルパス取得 string filePath = DicImage[url].FilePath; //ファイルパスが空の場合は、NULL if (filePath == "" || filePath == DOWNLOAD_NOW) { yield return(GetNoImageTex()); goto End; } //存在チェック if (File.Exists(filePath)) { //ディクショナリからファイルパスを取得する yield return(TextureUtil.GetTextureFromFile(filePath)); goto End; } } else { //とりあえず登録 this.Add(new DatImageFileInfo(url, DOWNLOAD_NOW, DateTime.Now)); } //ファイル名、ファイルパス生成 string path = CreateFilePath(url); //ファイル名取得失敗時 if (path != "") { //最新ニュースデータ取得 var Async = WebImage.GetImage(url); //非同期実行 yield return(Async); //データ取得 Texture2D texture = (Texture2D)Async.Current; if (texture != null) { try { if (!texture.isBogus()) { //PNGで保存 TextureUtil.SavePng(texture, path); //辞書に登録 this.Add(new DatImageFileInfo(url, path, DateTime.Now)); } else { //ノーイメージをセット texture = GetNoImageTex(); //辞書に登録 this.Add(new DatImageFileInfo(url, "", DateTime.Now)); } } catch { Debug.Log("ファイル保存失敗:" + url); } } else { //ノーイメージをセット texture = GetNoImageTex(); //辞書に登録 this.Add(new DatImageFileInfo(url, "", DateTime.Now)); } //セーブ Save(); //取得したテクスチャを返す yield return(texture); } else { //空を返す yield return(null); } End :; }
/// <summary> /// Web上からテクスチャを取得する。 /// キャッシュにあれば、キャッシュから返す /// </summary> /// <param name="url"></param> /// <returns></returns> public IEnumerator DownloadWebTexutre(string url) { //ディクショナリ存在チェック if (DicImage.ContainsKey(url)) { yield break; } //ファイル名、ファイルパス生成 string path = CreateFilePath(url); //ファイル名取得失敗時 if (path != "") { //最新ニュースデータ取得 var Async = WebImage.GetImage(url); //非同期実行 yield return(Async); //データ取得 Texture2D texture = (Texture2D)Async.Current; if (texture != null) { try { if (!texture.isBogus()) { //PNGで保存 TextureUtil.SavePng(texture, path); //辞書に登録 this.Add(new DatImageFileInfo(url, path, DateTime.Now)); } else { //ノーイメージをセット texture = GetNoImageTex(); //辞書に登録 this.Add(new DatImageFileInfo(url, "", DateTime.Now)); } } catch { Debug.Log("ファイル保存失敗:" + url); } } else { //ノーイメージをセット texture = GetNoImageTex(); //辞書に登録 this.Add(new DatImageFileInfo(url, "", DateTime.Now)); } //セーブ Save(); } else { //辞書に登録 this.Add(new DatImageFileInfo(url, "", DateTime.Now)); } }