TypeCache
Provides methods for fast type extraction from assemblies loaded into the Unity Domain.
Read time 2 minutesLast updated 5 days ago
Definition
- Type: Class
- Namespace: UnityEditor
- Assembly: UnityEditor.CoreModule
public static class TypeCache
Remarks
Use to access attributes and derived types information. This cache allows arbitrary Editor code to achieve better performance, compared to using System.Reflection, by leveraging a native cached type information.
TypeCacheIt 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 and interfaces.
Note: Unlike custom attributes, generally does not cache pseudo-attributes. For more information, refer to Microsoft's documentation on attributes and pseudo-attributes. This means methods such as TypeCache.GetMethodsWithAttribute do not usually return methods marked with pseudo-attributes. One exception is TypeCache.GetTypesWithAttribute, which works for a small subset of pseudo-attributes. For more information, refer to TypeCache.GetTypesWithAttribute.
TypeCacheExamples
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(); }}
Static Methods
Method | Description |
|---|---|
| GetFieldsWithAttribute | Retrieves an unordered collection of fields marked with the T attribute. |
| GetMethodsWithAttribute | Retrieves an unordered collection of methods marked with the T attribute. |
| GetTypesDerivedFrom | Retrieves an unordered collection of types derived from the T type. |
| GetTypesWithAttribute | Retrieves an unordered collection of types marked with the T attribute. |
Structs
Struct | Description |
|---|---|
| TypeCache.FieldInfoCollection | Represents a read-only collection of FieldInfo and implements an IList interface. |
| TypeCache.MethodCollection | Represents a read-only collection of MethodInfo and implements an IList interface. |
| TypeCache.TypeCollection | Represents a read-only collection of Type and implements an IList interface. |