Provides methods for fast type extraction from assemblies loaded into the Unity Domain.
Use TypeCache to access attributes and derived types information. This cache allows arbitrary Editor code to leverage from native cache data.
It is a common use case to extract types marked with a specific attribute, or for classes that extend or implement a specific type, when building or extending the Unity Editor.
Iterating types in the current domain is usually a slow operation that scales linearly based on the number of types.
To speed up type extraction, the Editor builds an acceleration table, on the native side, that contains information about type attributes and derived classes.
using UnityEditor; using System; using System.Collections.Generic; using System.Linq;
public class VolumeComponent {}
public class Example { static List<Type> s_VolumeComponents; static Example() { s_VolumeComponents = TypeCache.GetTypesDerivedFrom<VolumeComponent>().ToList(); } }
GetFieldsWithAttribute | Retrieves a collection of fields marked with the T attribute. |
GetMethodsWithAttribute | Retrieves a collection of methods marked with the T attribute. |
GetTypesDerivedFrom | Retrieves a collection of types derived from the T type. |
GetTypesWithAttribute | Retrieves a collection of types marked with the T attribute. |