using System; using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine; using YooAsset.Editor; [DisplayName("打包特效纹理(自定义)")] public class PackEffectTexture : IPackRule { private const string PackDirectory = "Assets/Effect/Textures/"; PackRuleResult IPackRule.GetPackRuleResult(PackRuleData data) { string assetPath = data.AssetPath; if (assetPath.StartsWith(PackDirectory) == false) throw new Exception($"Only support folder : {PackDirectory}"); string assetName = Path.GetFileName(assetPath).ToLower(); string firstChar = assetName.Substring(0, 1); string bundleName = $"{PackDirectory}effect_texture_{firstChar}"; var packRuleResult = new PackRuleResult(bundleName, DefaultPackRule.AssetBundleFileExtension); return packRuleResult; } } [DisplayName("打包视频(自定义)")] public class PackVideo : IPackRule { public PackRuleResult GetPackRuleResult(PackRuleData data) { string bundleName = RemoveExtension(data.AssetPath); string fileExtension = Path.GetExtension(data.AssetPath); fileExtension = fileExtension.Remove(0, 1); PackRuleResult result = new PackRuleResult(bundleName, fileExtension); return result; } private string RemoveExtension(string str) { if (string.IsNullOrEmpty(str)) return str; int index = str.LastIndexOf("."); if (index == -1) return str; else return str.Remove(index); //"assets/config/test.unity3d" --> "assets/config/test" } }