using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; namespace BFEditor.Resource { public class EffectPrefabDependenciesChecker:BaseDependenciesChecker { public override string GetCheckerName() { return "effect-prefab"; } public override string GetCheckPathPrefix() { return "prefabs/effects/"; } public override string[] GetWhitePath() { string[] whitePath = { "arts/materials.ab", "arts/textures/", "arts/shader", "arts/effects/common/", }; return whitePath; } protected override Dictionary> GetDetailWhiteDic() { Dictionary> detailWhiteDic = new Dictionary>(){ {"prefabs/effects/battle_effects/", new List(){ "arts/effects/ui/ui_battle.ab", "arts/effects/battle" } }, {"prefabs/effects/ui", new List(){ "arts/effects/ui" } }, {"prefabs/effects/card_effects/", new List(){ "arts/effects/card_ui", "arts/effects/card/" } }, {"prefabs/effects/underground_palace", new List(){ "arts/effects/underground_palace/", "arts/models/maps/underground_palace" } }, {"prefabs/effects/city_build_effects/city_build_teardown", new List(){ "arts/effects/city_build/city_build_teardown", } }, }; return detailWhiteDic; } public override void OnCheck(string bundleName, ref List abnormalDependencies) { List dependencies = new List(); string[] strs = bundleName.Split('/'); string name = strs[strs.Length - 1].Replace(".prefab.ab", string.Empty); foreach(var dependent in abnormalDependencies) { if(dependent.Contains(name)) { continue; } strs = dependent.Split('/'); string dependentName = strs[strs.Length - 1].Replace(".ab", string.Empty); if(name.Contains(dependentName)) { continue; } dependencies.Add(dependent); } abnormalDependencies = dependencies; } } }