Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
        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);
        }