Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


DeleteArrayElementAtIndex(int)

Delete the element at the specified index in the array.
Read time 1 minuteLast updated 9 days ago

Definition

  • Type: Method
  • Namespace: UnityEditor
  • Assembly: UnityEditor
public void DeleteArrayElementAtIndex(int index)

Parameters

index

Remarks

Examples

using System.Collections.Generic;using UnityEditor;using UnityEngine;public class DeleteArrayElementAtIndexExample : ScriptableObject{ public List<string> m_Data; [MenuItem("Example/SerializedProperty/DeleteArrayElementAtIndex Example")] static void MenuCallback() { DeleteArrayElementAtIndexExample obj = ScriptableObject.CreateInstance<DeleteArrayElementAtIndexExample>(); obj.m_Data = new List<string>() { "The", "big", "cat", "jumped." }; SerializedObject serializedObject = new SerializedObject(obj); SerializedProperty arrayProperty = serializedObject.FindProperty("m_Data"); arrayProperty.DeleteArrayElementAtIndex(1); // With previous deletion index 2 now becomes the last element arrayProperty.DeleteArrayElementAtIndex(2); serializedObject.ApplyModifiedProperties(); // Outputs "The cat" Debug.Log("Final array contents: " + string.Join(" ", obj.m_Data)); }}
using UnityEngine;using UnityEditor;public class DeleteArrayElementAtIndexExample2 : ScriptableObject{ public int[] m_Array = new int[] { 1, -1, -1, 3, -1, -1, 1, 3, -1 }; [MenuItem("Example/SerializedProperty/DeleteArrayElementAtIndex Example 2")] static void MenuCallback() { var scriptableObject = ScriptableObject.CreateInstance<DeleteArrayElementAtIndexExample2>(); using (var serializedObject = new SerializedObject(scriptableObject)) { SerializedProperty arrayProperty = serializedObject.FindProperty("m_Array"); // Iterate the array removing any negative numbers int arraySize = arrayProperty.arraySize; for (int index = 0; index < arraySize;) { var arrayElement = arrayProperty.GetArrayElementAtIndex(index); if (arrayElement.intValue < 0) { arrayProperty.DeleteArrayElementAtIndex(index); arraySize--; } else { index++; } } serializedObject.ApplyModifiedProperties(); Debug.Log("Cleaned array contents: " + string.Join(" ", scriptableObject.m_Array)); } }}