This following describs the data type conversions and fields supported by PropertyField.
Most built-in controls in UI Toolkit implement the INotifyValueChanged interface for a specific data type. For example, DoubleField implements INotifyValueChanged<Double>, which means you can bind the DoubleField control to a property of type double. You can bind more data types with the binding system. For example, you can bind a property of type int to a DoubleField.
The following table lists the source and target data types that you can bind:
| Source data type | Target data type of INotifyValueChanged | 
|---|---|
| long | 
 | 
| int | 
 | 
| double | 
 | 
| float | 
 | 
| char | 
 | 
Note: To prevent data loss, use a PropertyField or use the appropriate data types as shown in the Fields supported by PropertyField table below.
PropertyField
When the Inspector window is populated, if a custom Editor does not exist for a type, the binding system calls InspectorElement.FillDefaultInspector(). This creates a PropertyField for each SerializedProperty on the SerializedObject. 
Each PropertyField has a matching control under it, such as an IntegerField to represent an int, or a Toggle to represent a bool. If the property has sub-properties, the PropertyField has a Foldout control. That Foldout has the appropriate default controls under for each sub-property. If you created a custom PropertyDrawer for a Property, the visual tree returned from the PropertyDrawer’s CreatePropertyGUI() method is used instead.
Note: When you create custom UI, don’t use a PropertyField unless you can’t find a specific control for it. For example, to create a control in your visual tree and bind it to a Color, use a ColorField rather than a PropertyField. This makes visual trees more lightweight and the operations faster.
The following table lists fields supported by PropertyField and their data type:
| フィールド | データ型 | 
|---|---|
| BoundsField | Bounds | 
| BoundsIntField | BoundsInt | 
| ColorField | Color | 
| CurveField | AnimationCurve | 
| FloatField | float | 
| GradientField | Gradient | 
| Hash128Field | Hash128 | 
| IntegerField | int | 
| IntegerField | int (ArraySize 用) | 
| LayerMaskField | unit | 
| LongField | long | 
| ObjectField | UnityEngine.Object | 
| PopupField<string> | Enum | 
| RectField | Rect | 
| RectIntField | RectInt | 
| TextField | string | 
| TextField, with a maxLength=1 | char | 
| Toggle | bool | 
| Vector2Field | Vector2 | 
| Vector2IntField | Vector2Int | 
| Vector3Field | Vector3 | 
| Vector3IntField | Vector3Int | 
| Vector4Field | Vector4 |