/// <summary> /// Ensures we have a static ReorderableList for each obj + list. /// </summary> /// <returns>The state.</returns> /// <param name="prop">Property.</param> private ReorderableListDrawer.State GetState(SerializedProperty property) { if (!property.isArray) { var parentProp = GetParentArray(property); serializedList = parentProp; serializedObject = property.serializedObject; target = serializedObject.targetObject; listName = parentProp.name; } var key = target.name + serializedList.propertyPath; ReorderableListDrawer.State state = null; s_States.TryGetValue(key, out state); if (state == null) { state = new ReorderableListDrawer.State(); state.reorderableList = CreateList(serializedObject, serializedList); s_States[key] = state; } return(state); }
private void RestoreState(SerializedProperty property) { m_State = this.GetState(property); m_State.reorderableList.serializedProperty = serializedList; }