public static HierarchyCustomStyleData Load()
        {
            HierarchyCustomStyleData settings = AssetDatabase.LoadAssetAtPath <HierarchyCustomStyleData>(_settingsPath);

            if (settings == null)
            {
                if (!AssetDatabase.IsValidFolder("Assets/Packages/com.rodrigoueda.unitybasecode"))
                {
                    if (!AssetDatabase.IsValidFolder("Assets/Packages"))
                    {
                        AssetDatabase.CreateFolder("Assets", "Packages");
                    }
                    AssetDatabase.CreateFolder("Assets/Packages", "com.rodrigoueda.unitybasecode");
                }

                settings = ScriptableObject.CreateInstance <HierarchyCustomStyleData>();

                settings.headerStyle = new HierarchyCustomStyleData.FilterStyleData[1] {
                    new HierarchyCustomStyleData.FilterStyleData()
                    {
                        name            = "Default header",
                        filterQuery     = "^---(.*)$",
                        replaceQuery    = "$1",
                        fontColor       = Color.white,
                        backgroundColor = Color.grey,
                        alignment       = TextAnchor.MiddleCenter,
                        fontStyle       = FontStyle.Bold,
                        upperCase       = true,
                        dropShadow      = true
                    }
                };

                AssetDatabase.CreateAsset(settings, _settingsPath);
                AssetDatabase.SaveAssets();

                HierarchyCustomStyleData.Refresh(settings);
            }

            return(settings);
        }
        public static SettingsProvider CreateSettingsProvider()
        {
            return(new SettingsProvider("Project/Hierarchy Header", SettingsScope.Project)
            {
                guiHandler = (searchContext) =>
                {
                    HierarchyCustomStyleData settings = Load();
                    SerializedObject serialized = new SerializedObject(settings);

                    EditorGUI.BeginChangeCheck();

                    EditorGUILayout.PropertyField(serialized.FindProperty("headerStyle"), new GUIContent("Entity"));

                    if (EditorGUI.EndChangeCheck())
                    {
                        serialized.ApplyModifiedProperties();
                        HierarchyCustomStyleData.Refresh(settings);
                    }
                },

                keywords = new HashSet <string>(new[] { "Entity log enabled", "Notifications log enabled" })
            });
        }
Example #3
0
 public static void Refresh(HierarchyCustomStyleData instance)
 {
     HeaderStyle = instance.headerStyle;
 }