UnityEditor.SerializedProperty

本篇文章出處自 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 所包含的序列化內容是否相同。

留言

這個網誌中的熱門文章