/// <summary> /// append request to queue. /// </summary> /// <param name="req">Req.</param> /// <param name="group">Group.</param> protected static bool AddReqToQueue(CRequest req, GroupRequestRecord group = null) { if (req == null) { return(false); } string key = req.udKey; //the udkey never change 第一个URI和relativeUrl评级而成。 UriGroup.CheckRequestUrlIsAssetbundle(req); if (!req.isShared && group != null) { PushGroup(req, group); } if (CheckLoadAssetAsync(req)) //已经下载 { return(false); #if UNITY_EDITOR } else if (SimulateAssetBundleInEditor && req.isAssetBundle) // { CallbackError(req); return(false); #endif } else if (!UriGroup.CheckRequestCurrentIndexCrc(req)) //如果校验失败 { #if HUGULA_LOADER_DEBUG Debug.LogFormat(" 0.0 <color=#ff0000>CheckCrcUri0Exists==false Req(assetname={0},url={1}) </color>", req.assetName, req.url); #endif CallbackError(req); return(false); } List <CRequest> list = null; if (requestCallBackList.TryGetValue(key, out list)) //.ContainsKey(key)) //回调列表 { #if HUGULA_LOADER_DEBUG Debug.LogFormat(" 0.1 <color=#15A0A1>requestCallBackList.ContainsKey Req(assetname={0},url={1}) </color>", req.assetName, req.url); #endif list.Add(req); return(true); } else { var listreqs = ListPool <CRequest> .Get(); requestCallBackList.Add(key, listreqs); listreqs.Add(req); if (queue.Count == 0 && currentLoading == 0 && loadingAssetBundleQueue.Count == 0) { totalLoading = 0; currentLoaded = 0; } #if HUGULA_LOADER_DEBUG Debug.LogFormat(" 0.1 <color=#15A0A1>LoadAssetBundle Req(assetname={0},url={1} isShared={2},isNormal={3}) </color>", req.assetName, req.url, req.isShared, req.isNormal); #endif if (req.isShared) { QueueOrLoad(req); // LoadAssetBundle(req);// QueueOrLoad (req);//realyLoadingQueue.Enqueue (req); } else if (!req.isNormal) { LoadAssetBundle(req); } else { queue.Push(req); totalLoading++; } return(true); } }
protected static bool AddReqToQueue(CRequest req, GroupRequestRecord group = null) { if (req == null) { return(false); } string key = req.udKey;//the udkey never change 第一个URI和relativeUrl评级而成。 UriGroup.CheckRequestUrlIsAssetbundle(req); if (!UriGroup.CheckRequestCurrentIndexCrc(req)) //如果校验失败 { #if HUGULA_LOADER_DEBUG Debug.LogFormat(" 0. <color=yellow>CheckCrcUri0Exists==false Req(assetname={0},url={1}) </color>", req.assetName, req.url); #endif CallbackError(req); return(false); } if (CheckLoadAssetAsync(req)) //已经下载 { return(false); } else if (requestCallBackList.ContainsKey(key)) //回调列表 { requestCallBackList[key].Add(req); if (!req.isShared) { if (group != null) { PushGroup(req, group); } } return(true); } else { var listreqs = ListPool <CRequest> .Get(); //new List<CRequest>(); requestCallBackList.Add(key, listreqs); listreqs.Add(req); if (queue.Count == 0 && currentLoading == 0 && loadingAssetBundleQueue.Count == 0) { totalLoading = 0; currentLoaded = 0; } if (req.isShared) { QueueOrLoad(req); //realyLoadingQueue.Enqueue (req); } else if (!req.isNormal) { LoadAssetBundle(req); if (group != null) { PushGroup(req, group); } } else { queue.Push(req); totalLoading++; if (group != null) { PushGroup(req, group); } } return(true); } }