2023-04-03 11:04:31 +08:00

85 lines
2.9 KiB
C#

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<string, List<string>> GetDetailWhiteDic()
{
Dictionary<string, List<string>> detailWhiteDic = new Dictionary<string, List<string>>(){
{"prefabs/effects/battle_effects/",
new List<string>(){
"arts/effects/ui/ui_battle.ab",
"arts/effects/battle"
}
},
{"prefabs/effects/ui",
new List<string>(){
"arts/effects/ui"
}
},
{"prefabs/effects/card_effects/",
new List<string>(){
"arts/effects/card_ui",
"arts/effects/card/"
}
},
{"prefabs/effects/underground_palace",
new List<string>(){
"arts/effects/underground_palace/",
"arts/models/maps/underground_palace"
}
},
{"prefabs/effects/city_build_effects/city_build_teardown",
new List<string>(){
"arts/effects/city_build/city_build_teardown",
}
},
};
return detailWhiteDic;
}
public override void OnCheck(string bundleName, ref List<string> abnormalDependencies)
{
List<string> dependencies = new List<string>();
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;
}
}
}