Интерфейс UI Toolkit одной цепочкой вызовов — без отдельной строки на каждое свойство и стиль.
Быстрый старт
Цепочка сохраняет тип: new Button ( ) . SetText ( "Create" ) — это Button , а AddChild возвращает родителя, а не добавленный элемент.
Имена методов
Остальные методы Unity переименованы по смыслу — они в разделах ниже. Полный список методов — в справочнике API .
Дочерние элементы
Вариант …If есть у каждого метода из первой таблицы.
Стили
SetPadding ( 8 ) SetPaddingX ( 8 ) SetPaddingY ( 8 ) SetPadding ( top : 8 , left : 4 ) SetBorderRadiusTop ( 6 ) SetSize ( 24 , 16 ) SetTop ( 8 ) parent 8 8 8 8 content все стороны
Остальные методы стилей работают по тому же принципу.
Цвет из строки и ассеты из Resources
Вариант …FromResources есть также у SetImage , SetSprite , SetVectorImage , AddStyleSheet и RemoveStyleSheet .
Жирный и курсив
SetNormalUnityFontStyleAndWeight ( ) сбрасывает оба флага; остальные пресеты меняют один флаг и сохраняют второй:
Пресеты читают текущее значение из style элемента, а не итоговый стиль: начертание, заданное в USS, считается Normal .
USS-классы и таблицы стилей
Значения и события
AddValueChanged ( evt => … ) не требует аргументов типа: перегрузки есть для всех полей Unity, а при установленном com . unity . mathematics — и для его типов;
для своих типов — SetValue < T , TValue > ( … ) и AddValueChanged < TField , TValue > ( … ) .
Фокус
Манипуляторы
Расширения редактора
У PropertyField есть SetLabel и AddValueChanged / RemoveValueChanged с SerializedPropertyChangeEvent :
var manaCost = new PropertyField (
serializedObject . FindProperty ( "_manaCost" ) )
. SetLabel ( "Mana cost" )
. AddValueChanged ( _ => Refresh ( ) ) ;
Для записи в свойство из собственного кода используйте SerializedProperty Extensions .
Открыть скрипт по двойному клику
AddOpenScriptCommand открывает в IDE скрипт MonoBehaviour или ScriptableObject по двойному клику левой кнопкой; для других объектов ничего не добавляет:
title . AddOpenScriptCommand ( target ) ;
Окно элемента
Собственные свойства USS
Пример в пакете
Окно каталога и инспектор AbilityConfig в примере EditorTools собраны на этих расширениях.