public override float GetPropertyHeight(SerializedProperty property, GUIContent label) { var height = (float)kFoldoutHeight; if (property.isExpanded) { if (m_BindingListView == null) { m_BindingListView = new InputBindingListView(property); } height += m_BindingListView.GetHeight(); } return(height); }
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { EditorGUI.BeginProperty(position, label, property); // If the action has no name, infer it from the name of the action property. SetActionNameIfNotSet(property); var foldoutRect = position; foldoutRect.height = kFoldoutHeight; var nowFoldedOut = EditorGUI.Foldout(foldoutRect, property.isExpanded, label); if (nowFoldedOut != property.isExpanded) { property.isExpanded = nowFoldedOut; // Awkwardly force a repaint. property.serializedObject.Update(); } else if (property.isExpanded) { position.y += kFoldoutHeight + 2; position.x += kBindingIndent; position.width -= kBindingIndent; if (m_BindingListView == null) { m_BindingListView = new InputBindingListView(property); } m_BindingListView.DoList(position); } EditorGUI.EndProperty(); }