public static void DoFoldoutsLayout(Dictionary <string, List <SerializedProperty> > data) { var first = data.Values.FirstOrDefault(); if (first == null || first.Count == 0) { return; } var serializedObject = first.First().serializedObject; serializedObject.Update(); var objectName = serializedObject.targetObject.GetType().Name; foreach (var foldoutName in data.Keys) { var entryName = objectName + ".Show" + foldoutName; var state = EditorPrefs.GetBool(entryName, false); state = EditorGUILayout.Foldout(state, foldoutName); if (state) { HedgehogEditorGUIUtility.DrawProperties(data[foldoutName].ToArray()); } EditorPrefs.SetBool(entryName, state); } serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { serializedObject.Update(); HedgehogEditorGUIUtility.DrawProperties(serializedObject, "PaletteMaterial", "IgnoreTransparent"); Instance.SetColorFrom = EditorGUILayout.Toggle("Set Color From", Instance.SetColorFrom); if (Instance.SetColorFrom) { HedgehogEditorGUIUtility.DrawProperties(serializedObject, "ColorFromIndex"); } ShowPalettes = EditorGUILayout.Foldout(ShowPalettes, "Palettes"); if (ShowPalettes) { Palettes.DoLayoutList(); if (!Application.isPlaying && Palettes.HasKeyboardControl()) { Instance.SetPalette(Palettes.index); } } serializedObject.ApplyModifiedProperties(); }
public static void DoFoldoutsLayout(SerializedObject serializedObject, string noFoldoutName = "Misc") { serializedObject.Update(); var data = GatherProperties(serializedObject, noFoldoutName); List <SerializedProperty> noFoldout; if (data.TryGetValue(noFoldoutName, out noFoldout)) { data.Remove(noFoldoutName); HedgehogEditorGUIUtility.DrawProperties(noFoldout.ToArray()); serializedObject.ApplyModifiedProperties(); } DoFoldoutsLayout(data); }