/// <summary> /// Draws the foldout. /// </summary> /// <param name="title">Title.</param> /// <param name="position">Position.</param> public static bool DrawFoldout(GUIContent title, Rect position) { bool state = EditorPrefsUtils.GetFoldoutState(title); bool newState = EditorGUI.Foldout(position, state, title); if (newState != state) { EditorPrefsUtils.SetFoldoutState(title, newState); } return(newState); }
/// <summary> /// Draws a foldout and uses the drawContentsMethod to fill it. /// </summary> /// <param name="title">Title.</param> /// <param name="drawContentsMethod">Draw contents method.</param> public static bool DrawFoldout(GUIContent title, Action drawContentsMethod) { bool state = EditorPrefsUtils.GetFoldoutState(title); bool newState = EditorGUILayout.Foldout(state, title); if (newState) { int indentLevel = EditorGUI.indentLevel; EditorGUI.indentLevel++; drawContentsMethod(); EditorGUI.indentLevel = indentLevel; } if (newState != state) { EditorPrefsUtils.SetFoldoutState(title, newState); } return(newState); }