public override void OnGUI( Rect position, SerializedProperty property, GUIContent label) { ReorderableListOfValues reorderableList = GetReorderableList( this.attribute, this.fieldInfo, property); reorderableList.UpdateLabel(label); reorderableList.onBackgroundColor = onBackgroundColor; reorderableList.onSelectCallback += OnSelectCallback; reorderableList.DoGUI(position); reorderableList.onSelectCallback -= OnSelectCallback; reorderableList.onBackgroundColor = null; }
protected ReorderableListOfValues GetReorderableList( ReorderableListAttribute attribute, FieldInfo fieldInfo, SerializedProperty property) { string propertyPath = property.propertyPath; if (this.m_MostRecentReorderableList != null) { if (this.m_MostRecentPropertyPath == propertyPath) { this.m_MostRecentReorderableList.serializedProperty = property; return(this.m_MostRecentReorderableList); } } this.m_MostRecentReorderableList = this.m_ReorderableListMap .Find(propertyPath); if (this.m_MostRecentReorderableList == null) { ReorderableListOfValues reorderableList = CreateReorderableList( attribute, fieldInfo, property); this.m_ReorderableListMap.Add(propertyPath, reorderableList); this.m_MostRecentReorderableList = reorderableList; } else { this.m_MostRecentReorderableList.serializedProperty = property; } this.m_MostRecentPropertyPath = propertyPath; return(this.m_MostRecentReorderableList); }
public override float GetPropertyHeight( SerializedProperty property, GUIContent label) { ReorderableListOfValues reorderableListOfValues = GetReorderableList( this.attribute, this.fieldInfo, property); Debug.Assert( reorderableListOfValues.serializedProperty.propertyPath == property.propertyPath); try { return(reorderableListOfValues.GetHeight(label)); } catch (Exception ex) { Debug.LogException(ex); return(0f); } }