Перейти к основному содержимому

Пример EditorTools

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

Кнопка Halve cooldown, +5 MP меняет стоимость и перезарядку, а Undo возвращает прежние значения.Кнопка Halve cooldown, +5 MP меняет стоимость и перезарядку, а Undo возвращает прежние значения.

Кнопка Halve cooldown, +5 MP меняет стоимость и перезарядку, а Undo возвращает прежние значения.

Как открыть​

  1. Импортируйте пример: Tools → Aspid 🐍 → FastTools → Welcome → Samples → Import у EditorTools. Сцены у него нет.
  2. Откройте Tools → Aspid 🐍 → FastTools → Samples → Ability Catalog: слева способности проекта, среди них четыре ассета из Data/, справа — выбранная.

Попробуйте​

  1. ListView одной цепочкой. Список слева собран одной цепочкой расширений ListView, включая SetMakeItem, SetBindItem и AddSelectionChanged. Наберите текст в поле поиска: AddValueChanged фильтрует источник, а RefreshItems перерисовывает список.

  2. Привязка. Поля имени, описания, стоимости и перезарядки лежат в одном контейнере, привязанном через .BindTo(serializedObject). Измените имя — список и заголовок обновятся, а Undo вернёт прежнее.

  3. Типизированные сеттеры. Нажмите 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);
  4. Окно выбора из кода. Нажмите Change… рядом с Effect: TypeSelectorWindow.Show() открывает у кнопки окно выбора [TypeSelector] только с реализациями IAbilityEffect и записывает выбор в строковое свойство. Выберите HealEffect и поменяйте Mana Cost: описание эффекта следует за значением, в том числе при Undo и Redo.

  5. Открыть скрипт. Дважды кликните по заголовку способности справа: AddOpenScriptCommand откроет AbilityConfig.cs в IDE.

  6. Инспектор. Выберите Data/Sprint.asset в окне Project. AbilityConfigEditor рисует карточку с заголовком из GetDisplayName() — «Ability Config», бейдж стоимости и предупреждение, пока Mana Cost равен 0; обоими управляет PropertyField.AddValueChanged(). Поставьте стоимость 10 и верните обратно.

  7. 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.