/// <summary> /// 指定AssetBundleの読み込み. /// </summary> /// <param name="path">読み込むデータのPath</param> /// <param name="fileName">読み込むファイル名</param> /// <param name="priority">常駐優先度0~99</param> /// <param name="loadEndEvent">読み込み終了イベント登録.</param> public void LoadAssetBundleData(string path, string fileName, int priority = 0, CallbackLoadEndEvent loadEndEvent = null) { #if UNITY_EDITOR && UNUSE_ASSETBUNDLE // アセットバンドル使わない. #else // 以前に読み込みしているか? var abData = abDataList.Find(a => fileName.Equals(a.fileName)); if (abData != null) { if (loadEndEvent != null) { // ロード状態によって処理分け. switch (abData.state) { case LoadState.END: case LoadState.ERROR: loadEndEvent(); break; default: abData.loadEndEvent += loadEndEvent; break; } } } else { AssetBundleData tmp = new AssetBundleData(); tmp.path = path; tmp.fileName = fileName; tmp.state = LoadState.START; tmp.data = null; tmp.priority = priority; tmp.loadEndEvent = loadEndEvent; tmp.coroutine = LoadAssetBundle(tmp, path, fileName); abDataList.Add(tmp); StartCoroutine(tmp.coroutine); } #endif }
/// <summary> /// 指定データの読み込み. /// Resources,AssetBundle両方読み込めます /// </summary> /// <param name="path">読み込むデータのPath(Resources用)</param> /// <param name="fileName">読み込むファイル名</param> /// <param name="assetBundleName">AssetBundleから読み込む場合は、AssetBundle名</param> /// <param name="type">オブジェクトタイプ</param> /// <param name="priority">常駐優先度0~99</param> /// <param name="loadEndEvent">読み込み終了イベント登録</param> public void LoadData(string path, string fileName, string assetBundleName = null, System.Type type = null, int priority = 0, CallbackLoadEndEvent loadEndEvent = null) { // 以前に読み込んでいるか?. var cacheObj = objDataList.Find(a => fileName.Equals(a.fileName)); if (cacheObj != null) { if (loadEndEvent != null) { // ロード状態によって処理分け. switch (cacheObj.state) { case LoadState.END: case LoadState.ERROR: loadEndEvent(); break; default: cacheObj.loadEndEvent += loadEndEvent; break; } } } else { ObjectData tmp = new ObjectData(); tmp.path = path; tmp.fileName = fileName; tmp.state = LoadState.START; tmp.data = null; tmp.priority = priority; tmp.loadEndEvent = loadEndEvent; tmp.coroutine = LoadAsync(tmp, assetBundleName); objDataList.Add(tmp); StartCoroutine(tmp.coroutine); } }