This version of Unity is unsupported.

SerializedProperty.InsertArrayElementAtIndex

Declaration

public void InsertArrayElementAtIndex(int index);

Description

Insert an new element at the specified index in the array.

The value of the inserted element is undefined and should be explicitly set after calling this function.
See Also: 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)); } }