/// <summary> /// 读入配置文件 /// </summary> /// <param name="www_"></param> public static void ReadFromFile(WWW www_) { BdlNodeMap nodeMap = JsonUtility.FromJson <BdlNodeMap>(Encoding.UTF8.GetString(www_.bytes)); Dictionary <string, BdlNode> id2bdlNode = new Dictionary <string, BdlNode>(); BdlCfgInfo bdlCfg; foreach (BdlNode bdlNode in nodeMap.bdlNodes) { bdlCfg = new BdlCfgInfo(); bdlCfg.id = bdlNode.bundleId; m_id2bdl[bdlCfg.id] = bdlCfg; id2bdlNode[bdlNode.bundleId] = bdlNode; } foreach (var kvp in m_id2bdl) { bdlCfg = kvp.Value; BdlNode bdlNode = id2bdlNode[bdlCfg.id]; //确定加载路径 bdlCfg.path = bdlCfg.isPatch ? Path.Combine(AssetCacheBdl.PATCH_PATH, bdlNode.bundleName) : Path.Combine(AssetCacheBdl.BUNDLE_PATH, bdlNode.bundleName); //关联依赖 string[] dependIds = bdlNode.depends; if (dependIds.Length > 0) { bdlCfg.depends = new BdlCfgInfo[dependIds.Length]; for (int i = 0; i < dependIds.Length; ++i) { bdlCfg.depends[i] = m_id2bdl[dependIds[i]]; } } } ResCfgInfo resCfg; foreach (ResNode resNode in nodeMap.resNodes) { resCfg = new ResCfgInfo(); resCfg.path = resNode.path; resCfg.suffix = resNode.suffix; resCfg.bundle = m_id2bdl[resNode.bundleId]; } }
//-------∽-★-∽------∽-★-∽--------∽-★-∽数据管理∽-★-∽--------∽-★-∽------∽-★-∽--------// protected override AssetData CreateData(string url_) { AssetData data; if (m_url2data.TryGetValue(url_, out data)) { return(data as BundleData); } AssetDataII data2 = new AssetDataII(); data2.Init(url_); ResCfgInfo resCfg = AbsResConfig.GetResCfg(url_); BundleData dpData = CreateBdlData(resCfg.bundle.id); data2.SetDepend(dpData); m_url2data[url_] = data2; return(data2); }