public static void GetArrayItems(this SerializedProperty property, out string[] result) { SerializedProperty serializedProperty = property.Copy(); int arraySizeAndAdvanceToFirstItem = SerializedObjectExtension.GetArraySizeAndAdvanceToFirstItem(serializedProperty); result = new string[arraySizeAndAdvanceToFirstItem]; for (int i = 0; i < arraySizeAndAdvanceToFirstItem; i++) { serializedProperty.Next(false); result[i] = serializedProperty.stringValue; } }
public static void RemoveArrayItem(this SerializedProperty property, string item) { SerializedProperty serializedProperty = property.Copy(); int arraySizeAndAdvanceToFirstItem = SerializedObjectExtension.GetArraySizeAndAdvanceToFirstItem(serializedProperty); for (int i = 0; i < arraySizeAndAdvanceToFirstItem; i++) { serializedProperty.Next(false); if (serializedProperty.stringValue == item) { property.DeleteArrayElementAtIndex(i); return; } } }