Version: 6000.3
语言: 中文
可绑定元素参考
绑定系统实现详细信息

可绑定的数据类型和字段

本节介绍支持的数据类型转换和字段PropertyField.

数据类型转换

UI Toolkit 中的大多数内置控件都实现了INotifyValueChanged接口。例如DoubleField实现INotifyValueChanged<Double>,这意味着您可以绑定DoubleFieldcontrol 设置为类型为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

检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
请参阅术语表
窗口,如果某个类型不存在自定义编辑器,则绑定系统调用InspectorElement.FillDefaultInspector().这会创建一个PropertyField对于每个SerializedPropertySerializedObject.

PropertyField在其下有一个匹配的控件,例如IntegerField表示intToggle表示bool.如果属性具有子属性,则PropertyField有一个Foldout控制。那Foldout在每个子属性下都有相应的默认控件。如果您创建了自定义PropertyDrawer对于属性,则可视化树轻量级节点组成的对象图,用于保存窗口或面板中的所有元素。它定义了使用 UI 工具包构建的每个 UI。
请参阅术语表
PropertyDrawerCreatePropertyGUI()方法。

注意

创建自定义 UI 时,请勿使用PropertyField除非你找不到它的特定控件。例如,若要在可视化树中创建控件并将其绑定到Color,请使用ColorField而不是PropertyField.这使得可视化树更轻量级,作更快。

使用PropertyField会产生额外的开销,因为它会解析绑定后要使用的具体字段。此额外步骤可能会影响性能。然而PropertyField对某些用途是有益的。例如,它支持自定义抽屉,您可以使用它以个性化的方式处理特定属性。这样就无需猜测绘图的字段类型,从而减少错误。

下表列出了以下系统支持的字段PropertyField及其数据类型:

数据类型
BoundsField 边界
BoundsIntField 边界整体
ColorField 颜色
CurveField 动画曲线
FloatField
GradientField 梯度
Hash128Field 哈希128
IntegerField 整数
IntegerField int,用于 ArraySize
LayerMaskField 单位
LongField
ObjectField UnityEngine.对象
PopupField<字符串> 枚举
RectField 矩形
RectIntField 矩形内部
TextField 字符串
TextField,maxLength=1
Toggle 布尔语
Vector2Field 矢量2
Vector2IntField 矢量2Int
Vector3Field 矢量3
Vector3IntField 矢量3Int
Vector4Field 矢量4

其他资源

可绑定元素参考
绑定系统实现详细信息