Пример EditorTools
Окно редактора и инспектор, собранные в коде на хелперах пакета.


Кнопка Halve cooldown, +5 MP меняет стоимость и перезарядку, а Undo возвращает прежние значения.
Как открыть
- Импортируйте пример: Tools → Aspid 🐍 → FastTools → Welcome → Samples → Import у EditorTools. Сцены у него нет.
- Откройте Tools → Aspid 🐍 → FastTools → Samples → Ability Catalog: слева способности проекта, среди них четыре ассета из
Data/, справа — выбранная.
Попробуйте
-
ListView одной цепочкой. Список слева собран одной цепочкой расширений
ListView, включаяSetMakeItem,SetBindItemиAddSelectionChanged. Наберите текст в поле поиска:AddValueChangedфильтрует источник, аRefreshItemsперерисовывает список. -
Привязка. Поля имени, описания, стоимости и перезарядки лежат в одном контейнере, привязанном через
.BindTo(serializedObject). Измените имя — список и заголовок обновятся, а Undo вернёт прежнее. -
Типизированные сеттеры. Нажмите Halve cooldown, +5 MP. Обработчик записывает два свойства и применяет их один раз, поэтому оба откатываются одним Undo:
serializedObject.Update();var cooldown = serializedObject.FindProperty("_cooldown");var manaCost = serializedObject.FindProperty("_manaCost");cooldown.SetFloat(cooldown.floatValue * 0.5f);manaCost.SetIntAndApply(manaCost.intValue + 5); -
Окно выбора из кода. Нажмите Change… рядом с Effect:
TypeSelectorWindow.Show()открывает у кнопки окно выбора[TypeSelector]только с реализациямиIAbilityEffectи записывает выбор в строковое свойство. ВыберитеHealEffectи поменяйте Mana Cost: описание эффекта следует за значением, в том числе при Undo и Redo. -
Открыть скрипт. Дважды кликните по заголовку способности справа:
AddOpenScriptCommandоткроетAbilityConfig.csв IDE. -
Инспектор. Выберите
Data/Sprint.assetв окне Project.AbilityConfigEditorрисует карточку с заголовком изGetDisplayName()— «Ability Config», бейдж стоимости и предупреждение, пока Mana Cost равен0; обоими управляетPropertyField.AddValueChanged(). Поставьте стоимость10и верните обратно. -
Create. Нажмите Create: новый ассет появится рядом с выбранным и сразу выделится в списке.
Куда смотреть
| Файл | Что показывает |
|---|---|
Scripts/Editor/AbilityCatalogWindow.cs | Расширения ListView, BindTo, SetFloat и SetIntAndApply, TypeSelectorWindow.Show() с TypeSelectorFilter, AddOpenScriptCommand |
Scripts/Editor/AbilityConfigEditor.cs | Кастомный инспектор на сеттерах стиля и раскладки, GetDisplayName |
Scripts/AbilityConfig.cs | Данные; [TypeSelector] на строке эффекта даёт инспектору ассета то же окно выбора |
Scripts/Effects/ | Классы эффектов, которые предлагает окно выбора |
Справочник — VisualElement Extensions, SerializedProperty Extensions, Editor Helpers и TypeSelectorWindow.