Change Editor Cache type Loading API to TypeCache

pull/16/head
L 2022-06-22 17:25:06 +08:00
parent 3cbf891674
commit d58a82bfa5
1 changed files with 11 additions and 45 deletions
Assets/YooAsset/Editor/AssetBundleCollector

View File

@ -113,24 +113,11 @@ namespace YooAsset.Editor
_cachePackRuleTypes.Clear(); _cachePackRuleTypes.Clear();
_cachePackRuleInstance.Clear(); _cachePackRuleInstance.Clear();
// 获取所有类型 var types = TypeCache.GetTypesDerivedFrom<IPackRule>();
List<Type> types = new List<Type>(100)
{
typeof(PackSeparately),
typeof(PackDirectory),
typeof(PackTopDirectory),
typeof(PackCollector),
typeof(PackGroup),
typeof(PackRawFile),
};
var customTypes = EditorTools.GetAssignableTypes(typeof(IPackRule)); foreach(var type in types)
types.AddRange(customTypes);
for (int i = 0; i < types.Count; i++)
{ {
Type type = types[i]; _cachePackRuleTypes.TryAdd(type.Name, type);
if (_cachePackRuleTypes.ContainsKey(type.Name) == false)
_cachePackRuleTypes.Add(type.Name, type);
} }
} }
@ -140,22 +127,11 @@ namespace YooAsset.Editor
_cacheFilterRuleTypes.Clear(); _cacheFilterRuleTypes.Clear();
_cacheFilterRuleInstance.Clear(); _cacheFilterRuleInstance.Clear();
// 获取所有类型 var types = TypeCache.GetTypesDerivedFrom<IFilterRule>();
List<Type> types = new List<Type>(100)
foreach(var type in types)
{ {
typeof(CollectAll), _cacheFilterRuleTypes.TryAdd(type.Name, type);
typeof(CollectScene),
typeof(CollectPrefab),
typeof(CollectSprite)
};
var customTypes = EditorTools.GetAssignableTypes(typeof(IFilterRule));
types.AddRange(customTypes);
for (int i = 0; i < types.Count; i++)
{
Type type = types[i];
if (_cacheFilterRuleTypes.ContainsKey(type.Name) == false)
_cacheFilterRuleTypes.Add(type.Name, type);
} }
} }
@ -165,21 +141,11 @@ namespace YooAsset.Editor
_cacheAddressRuleTypes.Clear(); _cacheAddressRuleTypes.Clear();
_cacheAddressRuleInstance.Clear(); _cacheAddressRuleInstance.Clear();
// 获取所有类型 var types = TypeCache.GetTypesDerivedFrom<IAddressRule>();
List<Type> types = new List<Type>(100)
foreach(var type in types)
{ {
typeof(AddressByFileName), _cacheAddressRuleTypes.TryAdd(type.Name, type);
typeof(AddressByCollectorAndFileName),
typeof(AddressByGroupAndFileName)
};
var customTypes = EditorTools.GetAssignableTypes(typeof(IAddressRule));
types.AddRange(customTypes);
for (int i = 0; i < types.Count; i++)
{
Type type = types[i];
if (_cacheAddressRuleTypes.ContainsKey(type.Name) == false)
_cacheAddressRuleTypes.Add(type.Name, type);
} }
} }
} }