private void InitPipline() { if (m_AssetCollector.Count > 0) { m_IAssetCollector = m_AssetCollector[0] as IAssetCollector; } m_IAssetGaneraters = new List <IAssetGanerater>(); foreach (var item in m_AssetGaneraters) { m_IAssetGaneraters.Add(item as IAssetGanerater); } m_IAssetModifiers = new List <IAssetModifier>(); foreach (var item in m_AssetModifiers) { m_IAssetModifiers.Add(item as IAssetModifier); } if (m_BundleNameBuilder.Count > 0) { m_IBundleNameBuilder = m_BundleNameBuilder[0] as IBundleNameBuilder; } if (m_BundleBuidler.Count > 0) { m_IBundleBuidler = m_BundleBuidler[0] as IBundleBuidler; } if (m_BundleExporter.Count > 0) { m_IBundleExporter = m_BundleExporter[0] as IBundleExporter; } }
/// <summary> /// 获取资源的打包标签 /// </summary> public static string GetAssetBundleLabel(string assetpath) { // 注意:一个资源有可能被多个收集器覆盖 List <Collector> filterWrappers = new List <Collector>(); for (int i = 0; i < Setting.AssetBundleCollectors.Count; i++) { Collector wrapper = Setting.AssetBundleCollectors[i]; if (assetpath.StartsWith(wrapper.CollectFolderPath)) { filterWrappers.Add(wrapper); } } // 我们使用路径最深层的收集器 Collector findWrapper = null; for (int i = 0; i < filterWrappers.Count; i++) { Collector wrapper = filterWrappers[i]; if (findWrapper == null) { findWrapper = wrapper; continue; } if (wrapper.CollectFolderPath.Length > findWrapper.CollectFolderPath.Length) { findWrapper = wrapper; } } // 如果没有找到收集器 if (findWrapper == null) { IAssetCollector defaultCollector = new LabelByFilePath(); return(defaultCollector.GetAssetBundleLabel(assetpath)); } // 根据规则设置获取标签名称 IAssetCollector collector = GetCollectorInstance(findWrapper.GetCollectorClassName()); return(collector.GetAssetBundleLabel(assetpath, findWrapper)); }