Esempio n. 1
0
 private void OnAniLoadComplete(string prefabName, LoadAnimationCallback callback, string aniName)
 {
     if (callback != null)
     {
         callback(aniName);
     }
 }
Esempio n. 2
0
    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);
    }
Esempio n. 3
0
    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);
    }