public static void CreateTasksAsset() { TaskListManager asset = ScriptableObject.CreateInstance <TaskListManager>(); AssetDatabase.CreateAsset(asset, "Assets/NewTasks.asset"); AssetDatabase.SaveAssets(); EditorUtility.FocusProjectWindow(); Selection.activeObject = asset; }
void OnEnable() { manager = null; if (Selection.activeObject != null && Selection.activeObject is TaskListManager) { manager = Selection.activeObject as TaskListManager; } if (!manager) { TaskListManager[] gui = Resources.FindObjectsOfTypeAll <TaskListManager>(); if (gui.Length > 0) { manager = gui[0]; } } }
void OnGUI() { if (!manager) { EditorGUILayout.BeginVertical(); GUILayout.Label("No manager selected"); if (GUILayout.Button("Create task asset", GUILayout.Width(200))) { CreateTasksAsset(); } EditorGUILayout.EndVertical(); if (Selection.activeObject != null && Selection.activeObject is TaskListManager) { manager = Selection.activeObject as TaskListManager; } return; } EditorStyles.textField.wordWrap = true; EditorStyles.textArea.wordWrap = true; EditorStyles.label.wordWrap = true; oldColor = GUI.backgroundColor; EditorGUILayout.BeginVertical(); EditorGUILayout.LabelField("", GUI.skin.horizontalSlider); //filters EditorGUILayout.BeginHorizontal(); GUI.backgroundColor = currentFilter == -1 ? Color.yellow : oldColor; if (GUILayout.Button("All", GUILayout.Width(70))) { currentFilter = -1; } GUI.backgroundColor = currentFilter == 0 ? Color.yellow : oldColor; if (GUILayout.Button("Bugs", GUILayout.Width(70))) { currentFilter = 0; } GUI.backgroundColor = currentFilter == 1 ? Color.yellow : oldColor; if (GUILayout.Button("Tasks", GUILayout.Width(70))) { currentFilter = 1; } GUI.backgroundColor = currentFilter == 2 ? Color.yellow : oldColor; if (GUILayout.Button("Wishes", GUILayout.Width(70))) { currentFilter = 2; } GUI.backgroundColor = oldColor; EditorGUILayout.LabelField("", GUI.skin.verticalSlider, GUILayout.Width(10)); searchString = EditorGUILayout.TextField("Search", searchString, GUILayout.Width(300)); EditorGUILayout.LabelField("", GUI.skin.verticalSlider, GUILayout.Width(10)); EditorGUILayout.EndHorizontal(); EditorGUILayout.LabelField("", GUI.skin.horizontalSlider); EditorStyles.label.alignment = TextAnchor.LowerCenter; EditorGUILayout.BeginHorizontal(); DrawSection(SimpleTaskStatus.Created); DrawSection(SimpleTaskStatus.Started); DrawSection(SimpleTaskStatus.Done); EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); this.Repaint(); EditorUtility.SetDirty(manager); }