コード例 #1
0
 public void Reset()
 {
     AssetFinish          = null;
     PrimitiveAssetFinish = null;
     ObjectItem           = null;
     paramList            = null;
 }
コード例 #2
0
        /// <summary>
        /// ->objecmanager
        /// </summary>
        /// <param name="path"></param>
        /// <param name="objectItem"></param>
        /// <param name="innerCallBack"></param>
        /// <param name="priority"></param>
        public void AsyncLoadResource(string path, ObjectItem objectItem, OnAsyncPrimitiveAssetFinish innerCallBack,
                                      LoadResPriority priority, bool isSprite = false)
        {
            AssetItem assetItem = GetCacheAssetItem(objectItem.Crc);

            if (assetItem != null)
            {
                objectItem.PrimitiveAssetItem = assetItem;
                innerCallBack?.Invoke(path, objectItem);
                return;
            }

            AsyncLoadAssetParam asyncLoadAssetParam = null;

            if (!asyncLoadAssetParamDic.TryGetValue(objectItem.Crc, out asyncLoadAssetParam))
            {
                asyncLoadAssetParam          = asyncLoadResParamPackPool.Spawn();
                asyncLoadAssetParam.Crc      = objectItem.Crc;
                asyncLoadAssetParam.Path     = path;
                asyncLoadAssetParam.isSprite = isSprite;
                asyncLoadAssetParam.Priority = priority;
                asyncLoadAssetParamDic.Add(objectItem.Crc, asyncLoadAssetParam);
                loadingAssetLists[(int)priority].Add(asyncLoadAssetParam);
            }

            AsyncCallBackPack callBackPack = asyncCallBackPackPool.Spawn();

            callBackPack.PrimitiveAssetFinish = innerCallBack;
            callBackPack.ObjectItem           = objectItem;
            asyncLoadAssetParam.CallBackPacks.Add(callBackPack);
        }