Ejemplo n.º 1
0
        /// <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];
            }
        }
Ejemplo n.º 2
0
        //-------∽-★-∽------∽-★-∽--------∽-★-∽数据管理∽-★-∽--------∽-★-∽------∽-★-∽--------//

        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);
        }