/// <summary> /// 创建一个 下载节点; /// </summary> /// <param name="exData">追加内容,对应类型解;</param> public DownLoadPack(string strUrl, DownLoadAssetInfo downLoadInfo, DownLoadAssetType assetType, DownLoadCallBack funCallBack, object exData, bool debugError) { m_DownLoadAssetInfo = downLoadInfo; m_AssetType = assetType; m_CallBack = funCallBack; m_exData = exData; m_strUrl = strUrl; m_AssetRefer = 1; m_DebugError = debugError; }
static private DownLoadPack AddDownLoadAssetPack(string strName, string strURL, DownLoadAssetType assetType, Callback <object> callBack, object exData, bool debugError) { DownLoadPack gtAssetPack = null; if (m_AssetPackMap.ContainsKey(strName)) //如果存在上一个if的情况,此步等同于下载不销毁,重置回调 or 正常流程重复请求; { gtAssetPack = m_AssetPackMap[strName]; if (gtAssetPack != null) { gtAssetPack.AssetInfo.m_callBack += callBack; gtAssetPack.m_AssetRefer++; } } else { DownLoadAssetInfo gtInfo = null; if (assetType == DownLoadAssetType.ConfigVersion) //配置文件 特殊处理; { gtInfo = new DownLoadAssetInfo(); gtInfo.m_strName = strName; } else { gtInfo = WWWDownLoaderConfig.GetAssetDownLoadInfo(strName); } if (gtInfo == null) { Debug.LogError("WWWLoader LoadAsset, DownLoadInfo can not be null. \n" + strName); } else { gtInfo.m_callBack = callBack; gtInfo.m_strFileUrl = strURL; //for组装下载路径 and 保存路径; //gtAssetPack = new DownLoadPack(m_strWWWDownLoadUrl, gtInfo, assetType, DownLoadFinish, exData, debugError); gtAssetPack = new DownLoadPack(m_strWWWDownLoadUrl, gtInfo, assetType, null, exData, debugError); m_AssetPackMap.Add(strName, gtAssetPack); } } return(gtAssetPack); }
/// <summary> /// 解析客户端资源MD5配置; /// </summary> static public void ParseServerResourcesConfig(string strBelongConfig, string strData) { if (string.IsNullOrEmpty(strData)) { Debug.LogError("WWWDownLoaderManage ParseServerResourcesConfig,Config Data can not be null"); return; } KeyValuePairConfigHelper kvpHelper = new KeyValuePairConfigHelper(); kvpHelper.LoadConfig(strData, CommonValue.ResDir + strBelongConfig); if (kvpHelper.SelectHeadNode()) { while (true) { DownLoadAssetInfo downLoadInfo = new DownLoadAssetInfo(); downLoadInfo.m_strName = kvpHelper.GetNodeKey(); downLoadInfo.m_strMD5 = kvpHelper.GetNodeMD5(); downLoadInfo.m_nSize = Convert.ToInt64(kvpHelper.GetNodeSize()); downLoadInfo.m_strBelongConfig = strBelongConfig; if (m_dicDownLoadInfo.ContainsKey(downLoadInfo.m_strName)) { Debug.LogError("WWWDownLoaderManage ParseServerJson,Same Key : " + downLoadInfo.m_strName); } else { m_dicDownLoadInfo.Add(downLoadInfo.m_strName, downLoadInfo); } if (!kvpHelper.SelectNextNode()) { break;//结束读取循环; } } } }