diff --git a/Assets/YooAsset/Editor/AssetBundleCollector/DefaultRules/DefaultAddressRule.cs b/Assets/YooAsset/Editor/AssetBundleCollector/DefaultRules/DefaultAddressRule.cs index 2a8da342..f158c9f7 100644 --- a/Assets/YooAsset/Editor/AssetBundleCollector/DefaultRules/DefaultAddressRule.cs +++ b/Assets/YooAsset/Editor/AssetBundleCollector/DefaultRules/DefaultAddressRule.cs @@ -40,4 +40,23 @@ string IAddressRule.GetAssetAddress(AddressRuleData data) return $"{fileInfo.Directory.Name}_{fileName}"; } } -} \ No newline at end of file + + [DisplayName("定位地址: 文件名.智能尾缀")] + public class AddressByFileNameAndExt : IAddressRule + { + public string GetAssetAddress(AddressRuleData data) + { + var ext = Path.GetExtension(data.AssetPath); + if (ext == ".asset") + { + var a = UnityEditor.AssetDatabase.LoadAssetAtPath(data.AssetPath); + if (a == null) return ".errortype"; + var type = a.GetType(); + var dt = Path.GetFileNameWithoutExtension(data.AssetPath); + return dt + $".{type.Name.ToLowerInvariant()}"; + } + + return Path.GetFileName(data.AssetPath); + } + } +}