EditorInspectorPlugin
Плагин для добавления пользовательских редакторов свойств в инспектор.
Плагин для добавления пользовательских редакторов свойств в инспектор.
EditorInspectorPlugin позволяет добавлять пользовательские редакторы свойств в EditorInspector.
При редактировании объекта вызывается функция EditorInspectorPlugin._CanHandle, которая должна возвращать true, если тип объекта поддерживается.
Если поддерживается, будет вызвана функция EditorInspectorPlugin._ParseBegin, позволяющая размещать пользовательские элементы управления в начале класса.
Затем для каждой категории и свойства вызываются EditorInspectorPlugin._ParseCategory и EditorInspectorPlugin._ParseProperty. Они также предоставляют возможность добавлять пользовательские элементы управления в инспектор.
Наконец, будет вызван EditorInspectorPlugin._ParseEnd.
При каждом из этих вызовов можно вызывать функции «add».
Чтобы использовать EditorInspectorPlugin, сначала зарегистрируйте его с помощью метода EditorPlugin.AddInspectorPlugin.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
EditorInspectorPluginКонструктор
public EditorInspectorPlugin();Методы11
AddCustomControlvoid
public void AddCustomControl(Control control);Добавляет пользовательский элемент управления, который не обязательно является редактором свойств.
| Имя | Тип | По умолчанию |
|---|---|---|
control | Control | — |
AddPropertyEditor2 перегрузки
public void AddPropertyEditor(string property, Control editor, bool addToEnd);Добавляет редактор свойств для отдельного свойства. Элемент управления editor должен расширять EditorProperty.
Для свойства может быть несколько редакторов свойств. Если add_to_end равен true, этот недавно добавленный редактор будет отображаться после всех других редакторов свойства, у которых add_to_end равен false. Например, редактор использует этот параметр для добавления кнопки «Редактировать область» для Sprite2D.RegionRect под обычным редактором Rect2.
label можно использовать для выбора пользовательской метки для редактора свойств в инспекторе. Если оставить пустым, метка вычисляется на основе имени свойства.
| Имя | Тип | По умолчанию |
|---|---|---|
property | string | — |
editor | Control | — |
addToEnd | bool | — |
public void AddPropertyEditor(string property, Control editor, bool addToEnd = false, string label = "");Добавляет интерфейс для конкретного свойства во время parse-callback. Переданный Control должен быть EditorProperty; один SpinBox без этой обвязки не получает привязку и редакторский обмен данными.
| Имя | Тип | По умолчанию |
|---|---|---|
property | string | — |
editor | Control | — |
addToEnd | bool | false |
label | string | "" |
propertyТочное имя/путь свойства из _ParseProperty.
editorСозданный EditorProperty. После передачи его UI-жизненным циклом управляет Inspector.
addToEndПри true размещает после редакторов этого свойства с addToEnd=false. Не означает подавление стандартного поля.
labelСвоя подпись поля. При пустой строке она вычисляется из имени свойства; в примере передаётся Amount.
AddPropertyEditorForMultipleProperties2 перегрузки
public void AddPropertyEditorForMultipleProperties(string label, ReadOnlySpan<string> properties, Control editor);Добавляет редактор, позволяющий изменять несколько свойств. Элемент управления editor должен расширять EditorProperty.
| Имя | Тип | По умолчанию |
|---|---|---|
label | string | — |
properties | ReadOnlySpan<string> | — |
editor | Control | — |
public void AddPropertyEditorForMultipleProperties(string label, string[] properties, Control editor);Добавляет редактор, позволяющий изменять несколько свойств. Элемент управления editor должен расширять EditorProperty.
| Имя | Тип | По умолчанию |
|---|---|---|
label | string | — |
properties | string[] | — |
editor | Control | — |
_CanHandlebool
public virtual bool _CanHandle(ReckfellObject @object);Определяет, должен ли плагин участвовать в разборе данного объекта. Ограничивайте конкретным типом/контрактом, а не всеми объектами редактора; пример принимает только DocsInspectorSettings.
| Имя | Тип | По умолчанию |
|---|---|---|
object | ReckfellObject | — |
objectОбъект, редактируемый Inspector; это не обязательно Entity и не обязательно выделенный игровой персонаж.
booltrue разрешает дальнейшие parse-callbacks этого плагина. Само по себе не создаёт виджет и не заменяет все поля.
_ParseBeginvoid
public virtual void _ParseBegin(ReckfellObject @object);Вызывается, чтобы разрешить добавление элементов управления в начало списка свойств для object.
####=Первоначальный_ категория
| Имя | Тип | По умолчанию |
|---|---|---|
object | ReckfellObject | — |
_ParseCategoryvoid
public virtual void _ParseCategory(ReckfellObject @object, string category);Вызывается, чтобы разрешить добавление элементов управления в начало категории в списке свойств для object.
| Имя | Тип | По умолчанию |
|---|---|---|
object | ReckfellObject | — |
category | string | — |
_ParseEndvoid
public virtual void _ParseEnd(ReckfellObject @object);Вызывается, чтобы разрешить добавление элементов управления в конец списка свойств для object.
| Имя | Тип | По умолчанию |
|---|---|---|
object | ReckfellObject | — |
_ParseGroupvoid
public virtual void _ParseGroup(ReckfellObject @object, string group);Вызывается, чтобы разрешить добавление элементов управления в начало группы или подгруппы в списке свойств для object.
#####парце_свойство
| Имя | Тип | По умолчанию |
|---|---|---|
object | ReckfellObject | — |
group | string | — |
_ParsePropertybool
public virtual bool _ParseProperty(ReckfellObject @object, Variant.Type type, string name, PropertyHint hintType, string hintString, PropertyUsageFlags usageFlags, bool wide);Выбирает редактор отдельного свойства после _CanHandle. Добавьте EditorProperty для подходящего имени/типа; не поглощайте остальные свойства. Пример заменяет только Amount.
| Имя | Тип | По умолчанию |
|---|---|---|
object | ReckfellObject | — |
type | Variant.Type | — |
name | string | — |
hintType | PropertyHint | — |
hintString | string | — |
usageFlags | PropertyUsageFlags | — |
wide | bool | — |
objectРедактируемый объект, переданный Inspector.
typeТип Variant свойства; double в примере представлен Variant.Type.Float.
nameТочное имя/путь свойства из списка объекта. Передайте его в AddPropertyEditor; это не переводимая подпись.
hintTypeТип подсказки свойства, например Range. Это метаданные редактора, не универсальная валидация модели.
hintStringСтрока параметров подсказки, например границы и шаг диапазона.
usageFlagsБитовые флаги использования свойства. Не смешивайте их с его значением.
wideРежим широких редакторов текущего Inspector. Учитывайте при компоновке; пример отдельный режим не реализует.
booltrue убирает стандартный редактор данного свойства; false оставляет стандартную обработку. Виджет нужно добавить отдельно.