SerializedProperty

class in UnityEditor

切换到手册

描述

SerializedProperty 和 SerializedObject 这两个类能够以完全通用的方式编辑对象上的属性(可自动处理撤销),同时还能调整预制件的 UI 样式。

SerializedProperty 将与 SerializedObjectEditor 类结合使用。 另请参阅: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数组中的元素数。如果 SerializedObject 包含多个对象,将返回元素的最小数量。因此,始终可以循环访问 SerializedObject 并仅获取在所有对象中找到的属性。
boolValue布尔值属性的值。
boundsIntValue带有整数值属性的边界的值。
boundsValue边界属性的值。
colorValue颜色属性的值。
depth属性的嵌套深度。(只读)
displayName属性的友好显示名称。(只读)
doubleValue双精度浮点属性的值。
editable此属性是否可编辑?(只读)
enumDisplayNames枚举属性的枚举的友好显示名称。
enumNames枚举属性的枚举的名称。
enumValueIndex枚举属性的枚举索引。
exposedReferenceValue对场景中另一个对象的引用。系统将在包含 SerializedProperty 的 SerializedObject 的上下文中解析此引用。
fixedBufferSize固定缓冲区中的元素数量。(只读)
floatValue浮点属性的值。
hasChildren此属性是否有子属性?(只读)
hasMultipleDifferentValues此属性是否会因为多对象编辑而代表多个不同的值?(只读)
hasVisibleChildren此属性是否有可见的子属性?(只读)
intValue整数属性的值。
isArray此属性是否为数组?(只读)
isDefaultOverride允许检查此属性是否为默认重载。预制件实例上的某些属性是默认重载。请参阅 PrefabUtility.IsDefaultOverride 以了解更多信息。
isExpanded此属性是否在检视面板中展开?
isFixedBuffer此属性是否为固定缓冲区?(只读)
isInstantiatedPrefab属性是否为预制件实例的一部分?(只读)
longValue长整型属性的值。
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。
GetEnumerator检索可让您遍历序列化属性的当前嵌套内容的迭代器。
GetFixedBufferElementAtIndex返回固定缓冲区中指定索引处的元素。
InsertArrayElementAtIndex在数组中的指定索引处插入空元素。
MoveArrayElement将数组元素从 srcIndex 移到 dstIndex。
Next移至下一个属性。
NextVisible移至下一个可见属性。
Reset移至对象的第一个属性。

静态函数

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