版本: Unity 6 (6000.0)
语言English
  • C#

SerializedProperty

UnityEditor 中的类

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个建议更改,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

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边界的属性值。
boxedValueSerializedProperty 的值,作为 System.Object 封装。
colorValue颜色属性的值。
contentHash提供属性的哈希值。(只读)
depth属性的嵌套深度。(只读)
displayName属性的友好显示名称。(只读)
doubleValue浮点属性的值作为双精度数。
editable此属性是否可编辑?(只读)
enumDisplayNames枚举属性的枚举的用户友好名称。
enumNames枚举属性的枚举名称。
enumValueFlag具有混合值的枚举属性的 Int32 表示形式。
enumValueIndex枚举属性的枚举索引。
exposedReferenceValue对场景中另一个对象的引用。此引用在包含 SerializedProperty 的 SerializedObject 的上下文中解析。
fixedBufferSize固定缓冲区中元素的数量。(只读)
floatValue浮点属性的值。
gradientValue渐变属性的值。
hasChildren它是否有子属性?(只读)
hash128ValueHash128 属性的值。
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查看包含的序列化属性是否相等。