SerializedProperty.InsertArrayElementAtIndex
Declaration
public void InsertArrayElementAtIndex(int index);Описание
Вставляет новый элемент на указанном индексе в массиве.
Значение вставленного элемента не определено и должно быть явно установлено после вызова этой функции.
Дополнительные ресурсы: isArray, arraySize, GetArrayElementAtIndex.
using UnityEditor; using UnityEngine;
public class InsertArrayElementAtIndexExample : ScriptableObject { public string[] m_Data;
[MenuItem("Example/SerializedProperty/InsertArrayElementAtIndex Example")] static void MenuCallback() { InsertArrayElementAtIndexExample obj = ScriptableObject.CreateInstance<InsertArrayElementAtIndexExample>(); obj.m_Data = new string[] { "The", "cat" };
SerializedObject serializedObject = new SerializedObject(obj); SerializedProperty arrayProperty = serializedObject.FindProperty("m_Data");
arrayProperty.InsertArrayElementAtIndex(1); arrayProperty.GetArrayElementAtIndex(1).stringValue = "big";
arrayProperty.InsertArrayElementAtIndex(arrayProperty.arraySize); arrayProperty.GetArrayElementAtIndex(arrayProperty.arraySize - 1).stringValue = "jumped.";
serializedObject.ApplyModifiedProperties();
// Outputs "The big cat jumped." Debug.Log("Final array contents: " + string.Join(" ", obj.m_Data)); } }