private void OnAniLoadComplete(string prefabName, LoadAnimationCallback callback, string aniName) { if (callback != null) { callback(aniName); } }
IEnumerator DownloadAnimationRes(string prefabName, AnimationData data, LoadAnimationCallback callback, string aniName) { AssetParam refParam = new AssetParam(); foreach (string atlas in data.refAtlas) { if (!mAtlasReferences.ContainsKey(atlas)) { mAtlasReferences.Add(atlas, new AtlasReferenceData()); } //引用计数 +1 mAtlasReferences[atlas].reference_count += 1; if (CheckAtlasComplete(atlas)) { continue; } AtlasData atlasData = mConfig.AtlasDatas[atlas]; List <AssetPtr> depresList = new List <AssetPtr>(); ///加载字体依赖的贴图 AssetParam atlasparam = new AssetParam(); foreach (string texdep in atlasData.texs) { yield return(AssetManager.Instance.LoadResource(UI_PATH + "Texture/" + texdep + AssetConfig.AssetSuffix, atlasparam)); depresList.Add(atlasparam.asset); } yield return(AssetManager.Instance.LoadResource(UI_PATH + "Atlas/" + atlas + ".ab", refParam)); if (refParam.asset != null) { mAtlasReferences[atlas].resources.Add(refParam.asset); // if (!mTempAssetsHolders.ContainsKey(refParam.asset.Data.url)) // mTempAssetsHolders.Add(refParam.asset.Data.url, refParam.asset); UnityEngine.Object[] objs = refParam.asset.Data.LoadAll(); CacheUIAtlas(objs); } foreach (AssetPtr ptr in depresList) { ptr.Data.UnloadWebStream(); mAtlasReferences[atlas].resources.Add(ptr); // if (!mTempAssetsHolders.ContainsKey(ptr.Data.url)) // mTempAssetsHolders.Add(ptr.Data.url, ptr); } } OnAniLoadComplete(prefabName, callback, aniName); }
public bool LoadAnimationRes(string aniName, LoadAnimationCallback callback) { string prefabName = aniName + ".prefab"; if (!mConfig.AniDatas.ContainsKey(prefabName)) { GameDebug.Log("包里没有找到Animation " + prefabName); return(false); } //加入等待回调 // if (!mAniLoadCallbacks.ContainsKey(prefabName)) // { // mAniLoadCallbacks.Add(prefabName, new ArrayList()); // } // mAniLoadCallbacks[prefabName].Add(callback); AnimationData data = mConfig.AniDatas[prefabName] as AnimationData; BehaviourUtil.StartCoroutine(DownloadAnimationRes(prefabName, data, callback, aniName)); return(true); }