1.11.1: EditorTypeUtility now uses TypeCache, instead of looking through all assemblies

This commit is contained in:
Anders Ejlersen 2025-06-07 11:26:44 +02:00
parent 3a825efa2a
commit 889e6c58d5
2 changed files with 15 additions and 2 deletions

View file

@ -163,8 +163,20 @@ namespace Module.Inspector.Editor
private static void InternalFetch(Type assignableFrom)
{
Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
var listTypes = new List<Type>(32);
#if UNITY_2021_3 || UNITY_2022_2 || UNITY_6000_0_OR_NEWER
var types = TypeCache.GetTypesDerivedFrom(assignableFrom);
for (var i = 0; i < types.Count; i++)
{
Type type = types[i];
if (!type.IsAbstract)
listTypes.Add(type);
}
#else
Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
for (var i = 0; i < assemblies.Length; i++)
{
@ -179,6 +191,7 @@ namespace Module.Inspector.Editor
listTypes.Add(type);
}
}
#endif
listTypes.Sort((t0, t1) => string.Compare(t0.Name, t1.Name, StringComparison.Ordinal));
var fullnames = new string[listTypes.Count];

View file

@ -1,6 +1,6 @@
{
"name": "com.module.inspector",
"version": "1.11.0",
"version": "1.11.1",
"displayName": "Module.Inspector",
"description": "Custom inspector with various useful property drawers",
"unity": "2019.2",