SerializedProperty 和 SerializedObject 是用于以完全通用的方式编辑对象属性的类,它们自动处理撤消、多对象编辑和预制覆盖。
SerializedProperty 主要用于读取或更改属性的值。它还可以使用 Next 迭代对象的属性。其他资源:SerializedObject 类,Editor 类。
using UnityEngine; using UnityEditor;
public class MyObject : ScriptableObject { public int myInt = 42; }
public class SerializedPropertyTest : MonoBehaviour { void Start() { MyObject obj = ScriptableObject.CreateInstance<MyObject>(); SerializedObject serializedObject = new UnityEditor.SerializedObject(obj);
SerializedProperty serializedPropertyMyInt = serializedObject.FindProperty("myInt");
Debug.Log("myInt " + serializedPropertyMyInt.intValue); } }
| animationCurveValue | 动画曲线属性的值。 |
| arrayElementType | 数组属性中元素的类型名称。(只读) |
| arraySize | 数组中元素的数量。 |
| boolValue | 布尔属性的值。 |
| boundsIntValue | 具有整数属性的边界的属性值。 |
| boundsValue | 边界的属性值。 |
| boxedValue | SerializedProperty 的值,作为 System.Object 封装。 |
| colorValue | 颜色属性的值。 |
| contentHash | 提供属性的哈希值。(只读) |
| depth | 属性的嵌套深度。(只读) |
| displayName | 属性的友好显示名称。(只读) |
| doubleValue | 浮点属性的值作为双精度数。 |
| editable | 此属性是否可编辑?(只读) |
| enumDisplayNames | 枚举属性的枚举的用户友好名称。 |
| enumNames | 枚举属性的枚举名称。 |
| enumValueFlag | 具有混合值的枚举属性的 Int32 表示形式。 |
| enumValueIndex | 枚举属性的枚举索引。 |
| exposedReferenceValue | 对场景中另一个对象的引用。此引用在包含 SerializedProperty 的 SerializedObject 的上下文中解析。 |
| fixedBufferSize | 固定缓冲区中元素的数量。(只读) |
| floatValue | 浮点属性的值。 |
| gradientValue | 渐变属性的值。 |
| hasChildren | 它是否有子属性?(只读) |
| hash128Value | Hash128 属性的值。 |
| hasMultipleDifferentValues | 由于多对象编辑,此属性是否表示多个不同的值?(只读) |
| hasVisibleChildren | 它是否有可见的子属性?(只读) |
| intValue | 整数属性的值。 |
| isArray | 此属性是否为数组?(只读) |
| isDefaultOverride | 允许您检查此属性是否为默认覆盖。预制实例上的某些属性是默认覆盖。有关更多信息,请参阅 PrefabUtility.IsDefaultOverride。 |
| isExpanded | 此属性在检查器中是否已展开? |
| isFixedBuffer | 此属性是否为固定缓冲区?(只读) |
| isInstantiatedPrefab | 属性是否为预制实例的一部分?(只读) |
| longValue | 整数属性的值作为长整数。 |
| managedReferenceFieldTypename | 对应于托管引用字段完整类型字符串的值的字符串。 |
| managedReferenceFullTypename | 对应于托管引用对象(动态)完整类型字符串的值的字符串。 |
| managedReferenceId | 与托管引用关联的 ID。 |
| managedReferenceValue | 分配给带有 SerializeReference 属性的字段的对象。 |
| minArraySize | 所有目标对象中数组中最小的元素数量。(只读) |
| name | 属性的名称。(只读) |
| numericType | 返回整数和浮点属性的精确类型。(只读) |
| objectReferenceValue | 对象引用属性的值。 |
| prefabOverride | 允许您检查属性的值是否被覆盖(即不同于它所属的预制)。 |
| propertyPath | 属性的完整路径。(只读) |
| propertyType | 此属性的类型(只读)。 |
| quaternionValue | 四元数属性的值。 |
| rectIntValue | 具有整数属性的矩形的属性值。 |
| rectValue | 矩形属性的值。 |
| serializedObject | 此属性所属的 SerializedObject(只读)。 |
| stringValue | 字符串属性的值。 |
| tooltip | 属性的工具提示。(只读) |
| type | 属性的类型名称。(只读) |
| uintValue | 整数属性的值作为无符号整数。 |
| ulongValue | 整数属性的值作为无符号长整数。 |
| vector2IntValue | 二维整数向量属性的值。 |
| vector2Value | 二维向量属性的值。 |
| vector3IntValue | 三维整数向量属性的值。 |
| vector3Value | 三维向量属性的值。 |
| vector4Value | 四维向量属性的值。 |
| ClearArray | 从数组中删除所有元素。 |
| Copy | 返回 SerializedProperty 迭代器在其当前状态下的副本。 |
| CountInProperty | 计算此属性的可见子项数,包括此属性本身。 |
| CountRemaining | 计算剩余的可见属性数。 |
| DeleteArrayElementAtIndex | 删除数组中指定索引处的元素。 |
| DeleteCommand | 删除 SerializedProperty 引用的数组元素。 |
| DuplicateCommand | 复制 SerializedProperty 引用的数组元素。 |
| FindPropertyRelative | 检索相对于当前属性的相对路径处的 SerializedProperty。 |
| GetArrayElementAtIndex | 返回数组中指定索引处的元素。 |
| GetEndProperty | 检索定义此属性结束范围的 SerializedProperty。 |
| GetEnumerator | 检索用于枚举当前属性的可见子属性的迭代器。如果属性是数组,它将枚举数组元素。 |
| GetFixedBufferElementAtIndex | 返回固定缓冲区中指定索引处的元素。 |
| InsertArrayElementAtIndex | 在数组中指定索引处插入一个新元素。 |
| MoveArrayElement | 将数组元素从 srcIndex 移动到 dstIndex。 |
| Next | 移动到下一个属性。 |
| NextVisible | 移动到下一个可见属性。 |
| Reset | 移动到对象的第一个属性。 |
| DataEquals | 比较两个 SerializedProperty 的数据。此方法忽略路径和 SerializedObject。 |
| EqualContents | 查看包含的序列化属性是否相等。 |