using System.Collections;
using System.Collections.Generic;
public class CachingLoadExample2 : MonoBehaviour {
public Transform scrollView;
// AssetBundleのおいてある場所のパス
private const string BundleURL = "AssetBundleのおいてある場所のパス";
// ダウンロードするAssetBundleのリスト
private readonly string[] bundleList = new string[]
// アセットのバージョン 今回は固定で0でいいや
private int endDownloadCount;
private Dictionary<string, AssetBundle> assetBundleMonsterAtlasList;
private List<int> monsterIdList = new List<int>()
1,2,3,4,5,6,7,8,9,10,
11,12,13,14,15,16,17,18,19,20,
21,22,23,24,25,26,27,28,29,30,
31,32,33,34,35,36,37,38,39,40,
41,42,43,44,45,46,47,48,49,50,
assetBundleMonsterAtlasList = new Dictionary<string, AssetBundle>();
StartCoroutine(DownloadAllImage());
IEnumerator DownloadAllImage()
// キャッシュシステムの準備が完了するのを待ちます
string url = BundleURL + bundleList[endDownloadCount] + ".unity3d";
using(WWW www = WWW.LoadFromCacheOrDownload (url, version)){
throw new Exception("WWWダウンロードにエラーがありました:" + www.error);
AssetBundle bundle = www.assetBundle;
assetBundleMonsterAtlasList.Add(bundleList[endDownloadCount], bundle);
// メモリ節約のため圧縮されたアセットバンドルのコンテンツをアンロード
Debug.Log ("download" + endDownloadCount + " / " + bundleList.Length);
if(endDownloadCount != bundleList.Length)
StartCoroutine(DownloadAllImage());
public void DownLoadComplete()
Debug.Log ("Download Complete");
for(int i = 0; i < monsterIdList.Count; i++)
GameObject tip = Instantiate(Resources.Load ("Prefabs/Tip") ) as GameObject;
tip.transform.parent = scrollView;
tip.transform.localScale = Vector3.one;
tip.transform.localPosition = new Vector3(i % 4 * 110 - 160, Mathf.Floor(i / 4) * -110, 0);
UISprite monsterSprite = tip.transform.FindChild("Monster").GetComponent<UISprite>();
// DictionaryからAssetBundle取得
string bundleName = "Monster" + (int)(Mathf.Floor(i / 10) + 1);
AssetBundle bundle = assetBundleMonsterAtlasList[bundleName];
// AssetBundleからUIAtlasをインスタンス化
string atlasName = "Monster" + (int)(Mathf.Floor(i / 10) + 1);
UIAtlas atlas = bundle.Load(atlasName, typeof(UIAtlas)) as UIAtlas;
monsterSprite.atlas = atlas;
monsterSprite.spriteName = (i + 1).ToString();
scrollView.GetComponent<UIScrollView>().ResetPosition();