// ============================================================================ // AddressByFolderAndFileNameWithExt.cs — 自定义 YooAsset 地址规则 // 使用 "目录名_文件名(含扩展名)" 作为地址 // 避免同目录下同名不同扩展名文件的地址冲突 // ============================================================================ using System.IO; using YooAsset.Editor; /// /// 定位地址 = 文件所在目录名 + "_" + 文件名(含扩展名)。 /// 例如 AssetPath = "Assets/ResourcesOut/UIEffect/BattleSpine/510013_Wei/attack_SkeletonData.asset" /// → 地址 = "510013_Wei_attack_SkeletonData.asset" /// 与内置 AddressByFolderAndFileName 的区别:保留文件扩展名,避免 /// 同目录下 .asset / .png 等同基础名文件的地址冲突。 /// [DisplayName("定位地址: 文件夹名+文件名(含扩展名)")] public class AddressByFolderAndFileNameWithExt : IAddressRule { string IAddressRule.GetAssetAddress(AddressRuleData data) { string fileName = Path.GetFileName(data.AssetPath); FileInfo fileInfo = new FileInfo(data.AssetPath); return $"{fileInfo.Directory.Name}_{fileName}"; } }