本篇文章出處自 https://docs.unity3d.com/2022.3/Documentation/ScriptReference/SerializedProperty.html
軟體版本與本翻譯文件可能會有落差,本翻譯文件僅供參考。
SerializedProperty
class in UnityEditor.AdvertisementsLeave feedback
位於 UnityEditor 的類別
Description(描述)
SerializedProperty 和 SerializedObject 是用來以完全通用的方式編輯物件屬性的類別,並且會自動處理 Undo(復原)、多物件編輯、以及 Prefab 覆寫。
SerializedProperty 主要用於 讀取或修改屬性的值。
它也可以透過 Next 來 逐一巡訪(iterate)物件的屬性。
using UnityEngine;
using UnityEditor;
public class MyObject : ScriptableObject
{
public int myInt = 42;
}
public class SerializedPropertyTest : MonoBehaviour
{
void Start()
{
MyObject obj = ScriptableObject.CreateInstance();
SerializedObject serializedObject = new UnityEditor.SerializedObject(obj);
SerializedProperty serializedPropertyMyInt = serializedObject.FindProperty("myInt");
Debug.Log("myInt " + serializedPropertyMyInt.intValue);
}
}
Properties(屬性)
| Property |
Description(描述) |
| animationCurveValue |
動畫曲線(AnimationCurve)屬性的值。 |
| arrayElementType (唯讀) |
陣列屬性中元素的型別名稱。 |
| arraySize |
陣列的元素數量。 |
| boolValue |
布林屬性的值。 |
| boundsIntValue |
整數 Bounds(BoundsInt)屬性的值。 |
| boundsValue |
Bounds 屬性的值。 |
| boxedValue |
SerializedProperty 的值,以 System.Object 封裝(boxed)。 |
| colorValue |
顏色屬性的值。 |
| contentHash (唯讀) |
此屬性的雜湊值。 |
| depth (唯讀) |
屬性的巢狀深度。 |
| displayName (唯讀) |
此屬性的易讀顯示名稱。 |
| doubleValue |
浮點數屬性的值(以 double 表示)。 |
| editable (唯讀) |
此屬性是否可編輯? |
| entityIdValue |
EntityId 屬性的值。 |
| enumDisplayNames |
列舉屬性中,各列舉項目的顯示名稱。 |
| enumNames |
列舉屬性中,各列舉項目的名稱。 |
| enumValueFlag |
含「混合值」狀態時,列舉屬性的 Int32 表示法。 |
| enumValueIndex |
列舉屬性的索引值。 |
| exposedReferenceValue |
指向場景中另一個物件的引用。
此引用會在 SerializedObject 的上下文中被解析。 |
| fixedBufferSize (唯讀) |
fixed buffer 的元素數量。 |
| floatValue |
浮點數屬性的值。 |
| gradientValue |
漸層(Gradient)屬性的值。 |
| hasChildren (唯讀) |
此屬性是否有子屬性? |
| hash128Value |
Hash128 屬性的值。 |
| hasMultipleDifferentValues (唯讀) |
此屬性是否因為多物件編輯而呈現不同的值? |
| hasVisibleChildren (唯讀) |
是否有「可見」的子屬性? |
| intValue |
整數屬性的值。 |
| isArray (唯讀) |
此屬性是否為陣列? |
| isDefaultOverride |
用來檢查此屬性是否為「預設 override」。
(某些 Prefab 實例的屬性會屬於 default override。) |
| isExpanded |
此屬性是否在 Inspector 中展開? |
| isFixedBuffer (唯讀) |
此屬性是否為 fixed buffer? |
| isInstantiatedPrefab (唯讀) |
此屬性是否屬於某個 Prefab 實例? |
| longValue |
整數屬性的值,以 long 回傳。 |
| managedReferenceFieldTypename |
對應於 managed reference 欄位完整類型名稱的字串。 |
| managedReferenceFullTypename |
對應於 managed reference 物件(動態)的完整類型名稱字串。 |
| managedReferenceId |
與 managed reference 相關的 ID。 |
| managedReferenceValue |
指派給 SerializeReference 欄位的物件。 |
| minArraySize (唯讀) |
在所有目標物件中,此陣列屬性的「最小元素數量」。 |
| name (唯讀) |
屬性的名稱。 |
| numericType (唯讀) |
回傳整數與浮點數屬性的精確類型。 |
| objectReferenceValue |
物件引用屬性的值。 |
| prefabOverride |
檢查此屬性的值是否相對於所屬的 Prefab 被覆寫(override)。 |
| propertyPath (唯讀) |
此屬性的完整路徑。 |
| propertyType (唯讀) |
此屬性的類型。 |
| quaternionValue |
Quaternion 屬性的值。 |
| rectIntValue |
整數 Rect(RectInt)屬性的值。 |
| rectValue |
Rect 屬性的值。 |
| serializedObject (唯讀) |
此屬性所屬的 SerializedObject。 |
| stringValue |
字串屬性的值。 |
| tooltip (唯讀) |
此屬性的提示文字。 |
| type (唯讀) |
此屬性的類型名稱。 |
| uintValue |
整數屬性的值,以 unsigned int 回傳。 |
| ulongValue |
整數屬性的值,以 unsigned long 回傳。 |
| vector2IntValue |
Vector2Int 屬性的值。 |
| vector2Value |
Vector2 屬性的值。 |
| vector3IntValue |
Vector3Int 屬性的值。 |
| vector3Value |
Vector3 屬性的值。 |
| vector4Value |
Vector4 屬性的值。 |
Public Methods(公開方法)
| Method |
Description(描述) |
| ClearArray |
移除陣列中的所有元素。 |
| Copy |
回傳當前狀態下的 SerializedProperty 迭代器副本。 |
| CountInProperty |
計算這個屬性所有「可見子屬性」的數量,包含它自己。 |
| CountRemaining |
計算剩餘所有「可見屬性」的數量。 |
| DeleteArrayElementAtIndex |
刪除陣列中指定索引的元素。 |
| DeleteCommand |
刪除此 SerializedProperty 所指向的陣列元素。 |
| DuplicateCommand |
複製此 SerializedProperty 所指向的陣列元素。 |
| FindPropertyRelative |
取得相對於目前屬性路徑的 SerializedProperty。 |
| GetArrayElementAtIndex |
回傳陣列中指定索引的元素。 |
| GetEndProperty |
取得表示此屬性結束區段的 SerializedProperty。 |
| GetEnumerator |
取得用於列舉「可見子屬性」的迭代器。
如果此屬性是陣列,則會列舉陣列元素。 |
| GetFixedBufferElementAtIndex |
回傳 fixed buffer 中指定索引的元素。 |
| InsertArrayElementAtIndex |
在陣列中指定索引插入一個新元素。 |
| MoveArrayElement |
將陣列元素從 srcIndex 移動到 dstIndex。 |
| Next |
移動到下一個屬性。 |
| NextVisible |
移動到下一個「可見」屬性。 |
| Reset |
移動到物件的第一個屬性。 |
Static Methods(靜態方法)
| Property |
Description(描述) |
| DataEquals |
比較兩個 SerializedProperty 的資料內容。
此方法會忽略路徑與 SerializedObject 來源的差異。 |
| EqualContents |
檢查兩個 SerializedProperty 所包含的序列化內容是否相同。 |
留言