diff --git a/Assets/YooAsset/Editor/AssetBundleBuilder/BuildAssetInfo.cs b/Assets/YooAsset/Editor/AssetBundleBuilder/BuildAssetInfo.cs index 30beae0..913ac92 100644 --- a/Assets/YooAsset/Editor/AssetBundleBuilder/BuildAssetInfo.cs +++ b/Assets/YooAsset/Editor/AssetBundleBuilder/BuildAssetInfo.cs @@ -9,9 +9,9 @@ namespace YooAsset.Editor { private string _mainBundleName; private string _shareBundleName; - private readonly HashSet _referenceBundleNames = new HashSet(); private bool _isAddAssetTags = false; - + private readonly HashSet _referenceBundleNames = new HashSet(); + /// /// 收集器类型 /// @@ -68,9 +68,9 @@ namespace YooAsset.Editor else IsShaderAsset = false; } - public BuildAssetInfo(ECollectorType collectorType, string assetPath) + public BuildAssetInfo(string assetPath) { - CollectorType = collectorType; + CollectorType = ECollectorType.None; Address = string.Empty; AssetPath = assetPath; IsRawAsset = false; @@ -185,11 +185,9 @@ namespace YooAsset.Editor if (_referenceBundleNames.Count > 1) { - var bundleNameList = _referenceBundleNames.ToList(); - bundleNameList.Sort(); - string combineName = string.Join("|", bundleNameList); - var combineNameHash = HashUtility.StringSHA1(combineName); - var shareBundleName = $"share_{combineNameHash}.{YooAssetSettingsData.Setting.AssetBundleFileVariant}"; + IPackRule packRule = PackDirectory.StaticPackRule; + var bundleName = packRule.GetBundleName(new PackRuleData(AssetPath)); + var shareBundleName = $"share_{bundleName}.{YooAssetSettingsData.Setting.AssetBundleFileVariant}"; _shareBundleName = EditorTools.GetRegularPath(shareBundleName).ToLower(); } } diff --git a/Assets/YooAsset/Editor/AssetBundleBuilder/BuildMapCreater.cs b/Assets/YooAsset/Editor/AssetBundleBuilder/BuildMapCreater.cs index 5ff7128..4a1ac2b 100644 --- a/Assets/YooAsset/Editor/AssetBundleBuilder/BuildMapCreater.cs +++ b/Assets/YooAsset/Editor/AssetBundleBuilder/BuildMapCreater.cs @@ -65,7 +65,7 @@ namespace YooAsset.Editor } else { - var buildAssetInfo = new BuildAssetInfo(ECollectorType.None, dependAssetPath); + var buildAssetInfo = new BuildAssetInfo(dependAssetPath); buildAssetInfo.AddBundleTags(collectAssetInfo.AssetTags); buildAssetInfo.AddReferenceBundleName(collectAssetInfo.BundleName); buildAssetDic.Add(dependAssetPath, buildAssetInfo); diff --git a/Assets/YooAsset/Editor/AssetBundleCollector/DefaultPackRule.cs b/Assets/YooAsset/Editor/AssetBundleCollector/DefaultPackRule.cs index 0be3ecb..d081c58 100644 --- a/Assets/YooAsset/Editor/AssetBundleCollector/DefaultPackRule.cs +++ b/Assets/YooAsset/Editor/AssetBundleCollector/DefaultPackRule.cs @@ -28,6 +28,8 @@ namespace YooAsset.Editor /// public class PackDirectory : IPackRule { + public static PackDirectory StaticPackRule = new PackDirectory(); + string IPackRule.GetBundleName(PackRuleData data) { return Path.GetDirectoryName(data.AssetPath);