using UnityEngine; using UnityEditor; using UnityEditor.Callbacks; namespace Fungus { namespace EditorUtils { /// /// Shows Fungus section in the Edit->Preferences in unity allows you to configure Fungus behaviour /// /// ref https://docs.unity3d.com/ScriptReference/PreferenceItem.html /// [InitializeOnLoad] public static class FungusEditorPreferences { // Have we loaded the prefs yet private static bool prefsLoaded = false; public static bool hideMushroomInHierarchy, hideVariableInFlowchartInspector ; static FungusEditorPreferences() { LoadOnScriptLoad(); } // Add preferences section named "My Preferences" to the Preferences Window [PreferenceItem("Fungus")] public static void PreferencesGUI() { // Load the preferences if (!prefsLoaded) { LoadOnScriptLoad(); } // Preferences GUI hideMushroomInHierarchy = EditorGUILayout.Toggle("Hide Mushroom Flowchart Icon", hideMushroomInHierarchy); hideVariableInFlowchartInspector = EditorGUILayout.Toggle("Hide Variables in Flowchart Inspector", hideVariableInFlowchartInspector); // Save the preferences if (GUI.changed) { EditorPrefs.SetBool("hideMushroomInHierarchy", hideMushroomInHierarchy); EditorPrefs.SetBool("hideVariableInFlowchartInspector", hideVariableInFlowchartInspector); } } public static void LoadOnScriptLoad() { hideMushroomInHierarchy = EditorPrefs.GetBool("hideMushroomInHierarchy", false); hideVariableInFlowchartInspector = EditorPrefs.GetBool("hideVariableInFlowchartInspector", true); prefsLoaded = true; } } } }