TypeCache
класс в UnityEditor
Описание
Предоставляет методы для быстрого извлечения типов из сборок, загруженных в Домен Unity.
Используйте TypeCache для доступа к атрибутам и информации о производных типах. Этот кэш позволяет произвольному коду Редактора достигать более высокой производительности, по сравнению с использованием System.Reflection, благодаря использованию информации о типах, кэшируемых в собственном кэше.
Это распространенный случай использования для извлечения типов, помеченных определенным атрибутом, или для классов, которые расширяют или реализуют определенный тип, при построении или расширении Unity Editor. Итерация типов в текущем домене обычно является медленной операцией, которая линейным образом масштабируется в зависимости от количества типов.
Для ускорения извлечения типов Редактор создает таблицу ускорения на собственной стороне, которая содержит информацию об атрибутах типов и производных классах и интерфейсах.
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 | Получает неупорядоченный набор полей, помеченных атрибутом T. |
| GetMethodsWithAttribute | Получает неупорядоченную коллекцию методов, помеченных атрибутом T. |
| GetTypesDerivedFrom | Получает неупорядоченную коллекцию типов, полученных из типа T. |
| GetTypesWithAttribute | Получает неупорядоченную коллекцию типов, помеченных атрибутом T. |