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

View File

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