public override void OnInspectorGUI() { base.OnInspectorGUI(); GUILayoutOption[] guiOpts = new GUILayoutOption[] { GUILayout.Width(80), GUILayout.ExpandWidth(true), }; EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Name", guiOpts); EditorGUILayout.LabelField("Include", guiOpts); EditorGUILayout.LabelField("preDownload", guiOpts); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("All", guiOpts); var allIncludeTmp = EditorGUILayout.Toggle("", allInclude, guiOpts); if (allIncludeTmp != allInclude) { allInclude = allIncludeTmp; foreach (var i in mDirs) { mDirs[i.Key].include = allIncludeTmp; } } var allPreDownloadTmp = EditorGUILayout.Toggle("", allPreDownload, guiOpts); if (allPreDownloadTmp != allPreDownload) { allPreDownload = allPreDownloadTmp; foreach (var i in mDirs) { mDirs[i.Key].preDownload = allPreDownloadTmp; } } EditorGUILayout.EndHorizontal(); allInclude = mDirs.Where(i => i.Value.include).Count() == mBehavior.mDirs.Count(); allPreDownload = mDirs.Where(i => i.Value.preDownload).Count() == mBehavior.mDirs.Count(); foreach (var i in mDirs) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(i.Key.Replace("Assets/ABResources/", " "), guiOpts); mDirs[i.Key].include = EditorGUILayout.Toggle("", i.Value.include, guiOpts); mDirs[i.Key].preDownload = EditorGUILayout.Toggle("", i.Value.preDownload, guiOpts); EditorGUILayout.EndHorizontal(); } var rect = EditorGUILayout.GetControlRect(); if (GUI.Button(rect.Split(0, 4), "Refresh")) { Refresh(); } if (GUI.Button(rect.Split(1, 4), "BAndroid")) { foreach (var i in mDirs.Where(ii => ii.Value.include)) { BuildScript.BuildBundle(i.Key, i.Key.Replace("Assets/ABResources/", ""), BuildTarget.Android); } } //if(GUI.Button(rect.Split(2, 4), "Clean Build")) //{ //} if (GUI.changed) { mBehavior.mDirs = mDirs.Values.ToArray(); EditorUtility.SetDirty(mBehavior); //AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); } }