Unity 6.3
0 онлайн 53 гостей 3 в системе
Вход

Привязываемые типы данных и поля

В этом разделе описываются преобразования типов данных и поля, поддерживаемые PropertyField.

Преобразование типов данных

Большинство встроенных контроллеров в UI Toolkit реализуют INotifyValueChanged интерфейс для конкретного типа данных. Например, DoubleField инструменты INotifyValueChanged<Double>, что означает, что вы можете связать DoubleField управления к свойству типа double. Вы можете связать больше типов данных с системой привязки. Например, вы можете связать свойство типа int к а DoubleField.

В следующей таблице перечислены типы исходных и конечных данных, которые можно связать.

Тип источника данных Целевой тип данных INotifyValueChanged
long
  • long
  • int
  • string
  • float
int
  • int
  • string
  • float
double
  • double
  • float
float
  • float
  • double
char
  • char
  • string

Примечание: Для предотвращения потери данных используйте PropertyField или используйте соответствующие типы данных, как показано в Полях, поддерживаемых PropertyField таблице ниже.

Поля, поддерживаемые PropertyField

При заполнении окна Inspector, если пользовательский Редактор не существует для типа, система привязки вызывает InspectorElement.FillDefaultInspector(). Это создает PropertyField для каждого SerializedProperty на SerializedObject.

Каждый PropertyField имеет под собой соответствующий элемент управления, например IntegerField для представления int, или а Toggle для представления bool. Если свойство имеет подсвойства, PropertyField имеет Foldout контроля. Foldout имеет соответствующие элементы управления по умолчанию в каждом подсвойстве. Если вы создали настраиваемый PropertyDrawer для Свойства, визуальное дерево возвращается из PropertyDrawer’s CreatePropertyGUI() метод используется вместо этого.

Примечание:

При создании пользовательского UI не используйте PropertyField, если только вы не можете найти для него конкретный контроллер. Например, для создания контроллера в вашем визуальном дереве и привязки его к Color, используйте ColorField вместо PropertyField. Это делает визуальные деревья легче и операции быстрее.

Использование PropertyField приводит к дополнительным накладным расходам, поскольку оно разрешает конкретное поле, которое будет использоваться после привязки. Этот дополнительный шаг может повлиять на производительность. Однако PropertyField полезна для некоторых применений. Например, она поддерживает пользовательские ящики, которые можно использовать для обработки определенных свойств персонализированным образом. Это устраняет необходимость угадывать тип поля для рисования, что может снизить ошибки.

В следующей таблице перечислены поля, поддерживаемые PropertyField, и их типы данных:

Полевая Тип данных
BoundsField Границы
BoundsIntField BoundsInt
ColorField Цвет
CurveField AnimationCurve
FloatField поплавок
GradientField Градиент
Hash128Field Hash128
IntegerField инт
IntegerField int, для ArraySize
LayerMaskField единица
LongField длинный
ObjectField UnityEngine.Object
PopupField<строка> Энум
RectField Прямая
RectIntField RectInt
TextField строка
TextFieldс maxLength=1 символ
Toggle логическое
Vector2Field Vector2
Vector2IntField Vector2Int
Vector3Field Vector3
Vector3IntField Vector3Int
Vector4Field Vector4

Дополнительные ресурсы