private void OnGUI() { if (EditorApplication.isCompiling) { return; } var execBuild = false; if (config == null) { config = AssetDatabase.LoadAssetAtPath<BuildConfig>(savePath); if (config == null) { config = CreateInstance<BuildConfig>(); } } if (config == null) { return; } UpdateStyles(); //tool bar GUILayout.BeginHorizontal(Styles.toolbar); { if (GUILayout.Button("Add", Styles.toolbarButton)) { config.filters.Add(new BuildAssetFilter()); } if (GUILayout.Button("Save", Styles.toolbarButton)) { Save(); } GUILayout.FlexibleSpace(); if (GUILayout.Button("Build", Styles.toolbarButton)) { execBuild = true; } } GUILayout.EndHorizontal(); //context GUILayout.BeginVertical(); GUILayout.Space(10); GUILayout.BeginHorizontal(); { GUILayout.Label("Path", GUILayout.Width(400)); GUILayout.Label("", GUILayout.Width(80)); GUILayout.Label("Filter(*.xxx)", GUILayout.Width(100)); GUILayout.Label("ABName", GUILayout.Width(100)); GUILayout.Label("", GUILayout.Width(60)); GUILayout.Label("", GUILayout.Width(100)); GUILayout.Label("删除", GUILayout.Width(40)); } GUILayout.EndHorizontal(); Position = GUILayout.BeginScrollView(Position, GUILayout.Width(Screen.width), GUILayout.ExpandHeight(true)); for (int i = 0; i < config.filters.Count; i++) { var filter = config.filters[i]; GUILayout.BeginHorizontal(); { filter.path = GUILayout.TextField(filter.path, GUILayout.Width(400)); if (GUILayout.Button("Select", GUILayout.Width(80))) { string dataPath = Application.dataPath; string selectedPath = EditorUtility.OpenFolderPanel("Path", dataPath, ""); if (!string.IsNullOrEmpty(selectedPath)) { if (selectedPath.StartsWith(dataPath)) { filter.path = "Assets/" + selectedPath.Substring(dataPath.Length + 1); } else { ShowNotification(new GUIContent("不能在Assets目录之外!")); } } } if (filter.atlas) { GUILayout.Label("*.spriteatlas", GUILayout.Width(100)); } else { filter.filter = GUILayout.TextField(filter.filter, GUILayout.Width(100)); if (filter.filter.Contains(".spriteatlas")) { filter.atlas = true; filter.filter = ""; } } filter.abname = GUILayout.TextField(filter.abname, GUILayout.Width(100)); filter.atlas = GUILayout.Toggle(filter.atlas, "图集", GUILayout.Width(60)); filter.subdirs = GUILayout.Toggle(filter.subdirs, "包含子文件夹", GUILayout.Width(100)); if (GUILayout.Button("X", GUILayout.ExpandWidth(false))) { config.filters.RemoveAt(i); i--; } } GUILayout.EndHorizontal(); } GUILayout.EndScrollView(); GUILayout.EndVertical(); //set dirty if (GUI.changed) { EditorUtility.SetDirty(config); } if (execBuild) { Build(); } }
BuildPanel() { config = null; }