Version: 2021.3

SerializedProperty

class in UnityEditor

切换到手册

描述

SerializedProperty and SerializedObject are classes for editing properties on objects in a completely generic way that automatically handles undo, multi-object editing and Prefab overrides.

SerializedProperty is primarily used to read or change the value of a property. It can also iterate through the properties of an object using Next. See Also: SerializedObject class, Editor class.

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数组属性中元素的类型名称。(只读)
arraySizeThe number of elements in the array.
boolValue布尔值属性的值。
boundsIntValue带有整数值属性的边界的值。
boundsValue边界属性的值。
colorValue颜色属性的值。
depth属性的嵌套深度。(只读)
displayName属性的友好显示名称。(只读)
doubleValue双精度浮点属性的值。
editable此属性是否可编辑?(只读)
enumDisplayNames枚举属性的枚举的友好显示名称。
enumNames枚举属性的枚举的名称。
enumValueFlagInt32 representation of an enum property with Mixed Values.
enumValueIndex枚举属性的枚举索引。
exposedReferenceValue对场景中另一个对象的引用。系统将在包含 SerializedProperty 的 SerializedObject 的上下文中解析此引用。
fixedBufferSize固定缓冲区中的元素数量。(只读)
floatValue浮点属性的值。
hasChildren此属性是否有子属性?(只读)
hash128ValueThe value of a Hash128 property.
hasMultipleDifferentValues此属性是否会因为多对象编辑而代表多个不同的值?(只读)
hasVisibleChildren此属性是否有可见的子属性?(只读)
intValue整数属性的值。
isArray此属性是否为数组?(只读)
isDefaultOverride允许检查此属性是否为默认重载。预制件实例上的某些属性是默认重载。请参阅 PrefabUtility.IsDefaultOverride 以了解更多信息。
isExpanded此属性是否在检视面板中展开?
isFixedBuffer此属性是否为固定缓冲区?(只读)
isInstantiatedPrefab属性是否为预制件实例的一部分?(只读)
longValue长整型属性的值。
managedReferenceFieldTypename与托管引用字段完整类型字符串的值对应的字符串。
managedReferenceFullTypename与托管引用对象(动态)完整类型字符串的值对应的字符串。
managedReferenceIdId associated with a managed reference.
managedReferenceValueThe object assigned to a field with SerializeReference attribute.
minArraySizeThe smallest number of elements in the array across all target objects. (Read Only)
name属性的名称。(只读)
objectReferenceValue对象引用属性的值。
prefabOverride允许检查属性的值是否被重载(即与其所属的预制件不同)。
propertyPath属性的完整路径。(只读)
propertyType此属性的类型(只读)。
quaternionValue四元数属性的值。
rectIntValue带有整数值属性的矩形的值。
rectValue矩形属性的值。
serializedObject此属性所属的 SerializedObject(只读)。
stringValue字符串属性的值。
tooltip属性的工具提示。(只读)
type属性的类型名称。(只读)
vector2IntValue2D 整数向量属性的值。
vector2Value2D 向量属性的值。
vector3IntValue3D 整数向量属性的值。
vector3Value3D 向量属性的值。
vector4Value4D 向量属性的值。

公共函数

ClearArray从数组中删除所有元素。
Copy返回 SerializedProperty 迭代器的副本(保留当前状态)。如果您想在继续迭代的同时保存当前属性的引用,则此方法很有用。
CountInProperty计算此属性的可见子属性的数量,包括属性本身。
CountRemaining计算剩余可见属性的数量。
DeleteArrayElementAtIndex删除数组中指定索引处的元素。
DeleteCommand删除已序列化的属性。
DuplicateCommand复制已序列化的属性。
FindPropertyRelative从当前属性的相关路径检索 SerializedProperty。
GetArrayElementAtIndex返回数组中指定索引处的元素。
GetEndProperty检索定义此属性起始范围的 SerializedProperty。
GetEnumeratorRetrieves an iterator for enumerating over the visible child properties of the current property. If the property is an array it will enumerate over the array elements.
GetFixedBufferElementAtIndex返回固定缓冲区中指定索引处的元素。
InsertArrayElementAtIndex在数组中的指定索引处插入空元素。
MoveArrayElement将数组元素从 srcIndex 移到 dstIndex。
Next移至下一个属性。
NextVisible移至下一个可见属性。
Reset移至对象的第一个属性。

静态函数

DataEquals比较两个 SerializedProperties 的数据。此方法会忽略路径和 SerializedObjects。
EqualContents查看包含的序列化属性是否相等。