private static void CreateSettingsMenus() { var cont = EditorHelper.TempContent(s_styles.IconSettings, S._OpenSettings); var ssr = GUILayoutUtility.GetRect(cont, s_styles.DropDown2); ssr.width = 40; if (EditorHelper.HasMouseClick(GUILayoutUtility.GetLastRect())) { var m = new GenericMenu(); m.AddItem(S._Preferences, false, () => UnityEditorMenu.Edit_Preferences()); #if UNITY_2018_3_OR_NEWER m.AddItem(S._ProjectSettings, false, () => UnityEditorMenu.Edit_Project_Settings()); #else m.AddSeparator(""); m.AddItem(new GUIContent(S._Input), false, () => UnityEditorMenu.Edit_Project_Settings_Input()); m.AddItem(new GUIContent(S._TagsandLayers), false, () => UnityEditorMenu.Edit_Project_Settings_Tags_and_Layers()); m.AddItem(new GUIContent(S._Audio), false, () => UnityEditorMenu.Edit_Project_Settings_Audio()); m.AddItem(new GUIContent(S._Time), false, () => UnityEditorMenu.Edit_Project_Settings_Time()); m.AddItem(new GUIContent(S._Player), false, () => UnityEditorMenu.Edit_Project_Settings_Player()); m.AddItem(new GUIContent(S._Physics), false, () => UnityEditorMenu.Edit_Project_Settings_Physics()); m.AddItem(new GUIContent(S._Physics2D), false, () => UnityEditorMenu.Edit_Project_Settings_Physics_2D()); m.AddItem(new GUIContent(S._Quality), false, () => UnityEditorMenu.Edit_Project_Settings_Quality()); m.AddItem(new GUIContent(S._Graphics), false, () => UnityEditorMenu.Edit_Project_Settings_Graphics()); m.AddItem(new GUIContent(S._Network), false, () => UnityEditorMenu.Edit_Project_Settings_Network()); m.AddItem(new GUIContent(S._Editor), false, () => UnityEditorMenu.Edit_Project_Settings_Editor()); m.AddItem(new GUIContent(S._ScriptExecutionOrder), false, () => UnityEditorMenu.Edit_Project_Settings_Script_Execution_Order()); #endif m.DropDown(EditorHelper.PopupRect(GUILayoutUtility.GetLastRect())); Event.current.Use(); } GUI.Button(ssr, cont, s_styles.DropDown2); }
static void Button_Platform() { var cont = EditorHelper.TempContent(s_buildTargetInfo.Find(x => x.group == UnityEditorEditorUserBuildSettings.activeBuildTargetGroup).icon, S._OpenBuildSettings); Rect r = GUILayoutUtility.GetRect(cont, s_styles.DropDownButton, GUILayout.Width(50)); Rect rr = r; rr.width = 20; rr.x += 30; if (EditorHelper.HasMouseClick(rr)) { var m = new GenericMenu(); m.AddDisabledItem("SwitchPlatform"); m.AddSeparator(""); foreach (var e in s_buildTargetInfo) { m.AddItem(e.group.GetShortName(), UnityEditorEditorUserBuildSettings.activeBuildTargetGroup == e.group, CallbackEventOnSwitchPlatform, e.group); } m.DropDown(r.PopupRect()); Event.current.Use(); } if (GUI.Button(r, cont, s_styles.DropDownButton)) { UnityEditorMenu.File_Build_Settings(); } if (UnitySymbol.UNITY_2019_3_OR_NEWER) { //EditorGUI.DrawRect( rr, new Color(0,0,1,0.2f)); rr.y += 3; rr.height -= 6; GUI.Label(rr, GUIContent.none, "DopesheetBackground"); } }
public bool UIDraw(Rect rect, P.Params currentParams) { if (!HEditorGUI.IconButton(rect.W(16), EditorIcon.settings)) { return(false); } UnityEditorMenu.File_Build_Settings(); return(false); }
///////////////////////////////////////// void DrawRightPane() { HGUIToolbar.Begin(); if (HGUIToolbar.Button(EditorIcon.settings)) { UnityEditorMenu.File_Build_Settings(); } //if( HGUIToolbar.Button( EditorIcon.search_icon ) ) ProjectBrowserUtils.SetSearch( "t:Scene" ); GUILayout.FlexibleSpace(); HGUIToolbar.End(); m_treeView.DrawItem(); }
static void Button_Setting() { var cont = EditorHelper.TempContent(EditorIcon.settings, S._OpenSettings); var ssr = GUILayoutUtility.GetRect(cont, s_styles.DropDown2); ssr.width = 40; if (EditorHelper.HasMouseClick(GUILayoutUtility.GetLastRect())) { var m = new GenericMenu(); m.AddItem(S._Preferences, () => UnityEditorMenu.Edit_Preferences()); if (UnitySymbol.UNITY_2018_3_OR_NEWER) { m.AddItem(S._ProjectSettings, () => UnityEditorMenu.Edit_Project_Settings()); } else { m.AddSeparator(""); m.AddItem(S._Input, () => UnityEditorMenu.Edit_Project_Settings_Input()); m.AddItem(S._TagsandLayers, () => UnityEditorMenu.Edit_Project_Settings_Tags_and_Layers()); m.AddItem(S._Audio, () => UnityEditorMenu.Edit_Project_Settings_Audio()); m.AddItem(S._Time, () => UnityEditorMenu.Edit_Project_Settings_Time()); m.AddItem(S._Player, () => UnityEditorMenu.Edit_Project_Settings_Player()); m.AddItem(S._Physics, () => UnityEditorMenu.Edit_Project_Settings_Physics()); m.AddItem(S._Physics2D, () => UnityEditorMenu.Edit_Project_Settings_Physics_2D()); m.AddItem(S._Quality, () => UnityEditorMenu.Edit_Project_Settings_Quality()); m.AddItem(S._Graphics, () => UnityEditorMenu.Edit_Project_Settings_Graphics()); m.AddItem(S._Network, () => UnityEditorMenu.Edit_Project_Settings_Network()); m.AddItem(S._Editor, () => UnityEditorMenu.Edit_Project_Settings_Editor()); m.AddItem(S._ScriptExecutionOrder, () => UnityEditorMenu.Edit_Project_Settings_Script_Execution_Order()); } m.AddSeparator(""); m.AddItem("Hananoki-Settings", () => UnityEditorMenu.Window_Hananoki_Settings()); if (EditorHelper.HasMenuItem("Window/Hananoki/Render Pipeline")) { m.AddItem("Window/Hananoki/Render Pipeline".FileName(), () => "Window/Hananoki/Render Pipeline".ExecuteMenuItem()); } m.DropDownLastRect(); } GUI.Button(ssr, cont, s_styles.DropDown2); }
public void SceneSelectTabOnGUI() { PB.Load(); using (new VerticalScope(Styles.helpBox)) { using (new HorizontalScope()) { void editButton() { var lsss = PrefixLabel(GUILayoutUtility.GetLastRect(), EditorHelper.TempContent(S._BuildSceneSet)); lsss.x -= Styles.iconEdit.width; lsss.x -= 2; lsss.width = Styles.iconEdit.width; if (HEditorGUI.IconButton(lsss, Styles.iconEdit, 2)) { editMode = !editMode; PB.i.profileList = PB.i.profileList.Distinct(a => a.profileName).ToList(); Repaint(); } } if (PB.i.profileList.Count <= PB.i.selectIndex) { PB.i.selectIndex = PB.i.profileList.Count - 1; } var lst = PB.i.profileList.Select(x => x.profileName).ToArray(); BeginChangeCheck(); if (editMode) { PB.i.selectProfile.profileName = EditorGUILayout.TextField(S._BuildSceneSet, PB.i.selectProfile.profileName); editButton(); } else { PB.i.selectIndex = EditorGUILayout.Popup(S._BuildSceneSet, PB.i.selectIndex, lst); //var ls = GUILayoutUtility.GetLastRect(); editButton(); if (HEditorGUILayout.IconButton(Styles.iconPlus, 4)) { PB.i.profileList.Add(new PB.Profile($"BuildScene ({PB.i.profileList.Count})")); PB.i.selectIndex = PB.i.profileList.Count - 1; s_changed = true; } BeginDisabledGroup(PB.i.selectIndex == 0); if (HEditorGUILayout.IconButton(Styles.iconMinus, 4)) { PB.i.profileList.RemoveAt(PB.i.selectIndex); PB.i.selectIndex = PB.i.profileList.Count - 1; s_changed = true; } EndDisabledGroup(); } if (EndChangeCheck()) { PB.Save(); } } BeginHorizontal(); BeginChangeCheck(); PB.i.selectProfile.exclusionScene = EditorGUILayout.ToggleLeft(S._ExcludescenesfromthebuildthatarenotregisteredinBuildSettings, PB.i.selectProfile.exclusionScene); if (Button(S._Checktheorderofthebuild, ExpandWidth(false))) { var s = string.Join("\n", PB.GetBuildSceneName().Select((x, i) => $"{i}: {x}").ToArray()); EditorUtility.DisplayDialog(S._Checktheorderofthebuild, s, SS._OK); } if (EndChangeCheck()) { PB.Save(); } EndHorizontal(); } // Build SettingsにセットされているScene if (0 < m_scenePaths.Count) { Space(8); BeginHorizontal(); Label(S._BuildSettingsScenes, Styles.boldLabel); var r = EditorHelper.GetLayout(Styles.iconSettings, HEditorStyles.iconButton); if (HEditorGUI.IconButton(r, Styles.iconSettings, B.kBuildSettings, 1)) { UnityEditorMenu.File_Build_Settings(); } EndHorizontal(); foreach (var p in m_scenePaths) { BeginHorizontal(Styles.helpBox); BeginDisabledGroup(true); Toggle(p.enabled, ""); EndDisabledGroup(); Label(EditorHelper.TempContent(SceneName(p.path), EditorIcon.SceneAsset), Height(16)); if (EditorHelper.HasMouseClick(GUILayoutUtility.GetLastRect())) { EditorHelper.PingObject(p.path); Event.current.Use(); } FlexibleSpace(); foreach (var pp in PB.i.profileList) { BeginChangeCheck(); var toggle = Toggle(pp.Has(p.path), pp.profileName, "Button"); if (EndChangeCheck()) { pp.Toggle(toggle, p.path); PB.Save(); } } EndHorizontal(); } } // Build SettingsにセットされていないScene Space(8); Label(S._ScenesotherthanBuildSettings, Styles.boldLabel); foreach (var scenePath in m_leakedScenes) { BeginHorizontal(Styles.helpBox); Space(20); Label(EditorHelper.TempContent(scenePath, EditorIcon.SceneAsset), Height(16)); if (EditorHelper.HasMouseClick(GUILayoutUtility.GetLastRect())) { EditorHelper.PingObject(scenePath); Event.current.Use(); } FlexibleSpace(); foreach (var pp in PB.i.profileList) { BeginChangeCheck(); var toggle = Toggle(pp.Has(scenePath), pp.profileName, "Button"); if (EndChangeCheck()) { pp.Toggle(toggle, scenePath); PB.Save(); } } EndHorizontal(); } }
/// <summary> /// GUI Player Settingsの描画を行います /// </summary> public void DrawGUI_PlayerSettings() { var currentParams = P.GetCurrentParams(); int opt = currentParams.platformOption; bool fold; using (new GUILayout.VerticalScope(Styles.helpBox)) { using (new GUILayout.HorizontalScope()) { EditorGUI.BeginChangeCheck(); fold = HEditorGUILayout.Foldout(E.i.fold.Has(E.FoldPlatform), "Player Settings"); E.i.fold.Toggle(E.FoldPlatform, fold); if (EditorGUI.EndChangeCheck()) { s_changed = true; } GUILayout.FlexibleSpace(); var r = EditorHelper.GetLayout(Styles.iconSettings, HEditorStyles.iconButton); if (HEditorGUI.IconButton(r, Styles.iconSettings, 1)) { if (PB.i.enableOldStyleProjectSettings) { Selection.activeObject = AssetDatabase.LoadAssetAtPath <UnityObject>(AssetDatabase.GUIDToAssetPath("00000000000000004000000000000000")); EditorUtils.InspectorWindow().Focus(); } else { UnityEditorMenu.Edit_Project_Settings(); } } } EditorGUI.BeginChangeCheck(); if (fold) { EditorGUI.indentLevel++; if (P.i.selectBuildTargetGroup == BuildTargetGroup.Standalone || P.i.selectBuildTargetGroup == BuildTargetGroup.Android) { currentParams.scriptingBackend = (ScriptingImplementation)EditorGUILayout.Popup(S._ScriptingBackend, (int)currentParams.scriptingBackend, B.kScriptingBackendNames); } bool backend = false; if (P.i.selectBuildTargetGroup == BuildTargetGroup.WebGL) { } else if (currentParams.scriptingBackend == ScriptingImplementation.Mono2x) { backend = true; } using (new EditorGUI.DisabledGroupScope(backend)) { currentParams.il2CppCompilerConfiguration = (Il2CppCompilerConfiguration)EditorGUILayout.EnumPopup(S._C__CompilerConfiguration, currentParams.il2CppCompilerConfiguration); } EditorGUILayout.LabelField($"{S._ScriptingDefineSymbols} ({S._Applybuildonly})"); using (new GUILayout.HorizontalScope()) { currentParams.scriptingDefineSymbols = EditorGUILayout.TextField(currentParams.scriptingDefineSymbols); var mm = R.Method("GetSymbolList", "Hananoki.SymbolSettings.SettingsProject", "Hananoki.SymbolSettings.Editor"); if (mm != null) { var tc = GUILayoutUtility.GetRect(EditorHelper.TempContent(Styles.iconPlus), HEditorStyles.iconButton, GUILayout.Width(16), GUILayout.Height(16)); if (HEditorGUI.IconButton(tc, Styles.iconPlus, 3)) { GUI.FocusControl(""); void add(object obj) { var s = obj as string; var ss = currentParams.scriptingDefineSymbols.Split(';'); ArrayUtility.Add(ref ss, s); currentParams.scriptingDefineSymbols = string.Join(";", ss.Where(x => !x.IsEmpty()).Distinct().ToArray()); } var hoge = (ValueTuple <string[], string[]>)mm.Invoke(null, null); var lst = new List <string>(); var m = new GenericMenu(); foreach (var s in hoge.Item1) { m.AddItem("Project/" + s, false, add, s); } foreach (var s in hoge.Item2) { m.AddItem("Editor/" + s, false, add, s); } m.DropDown(tc); } } } EditorGUILayout.LabelField($"{S._ScriptingDefineSymbols} ({S._Current})"); EditorGUI.BeginDisabledGroup(true); EditorGUILayout.TextField(B.scriptingDefineSymbols); EditorGUI.EndDisabledGroup(); EditorGUI.indentLevel--; GUILayout.Space(4); } if (EditorGUI.EndChangeCheck()) { currentParams.platformOption = opt; s_changed = true; } } }
/// <summary> /// GUI Build Settingsの描画を行います /// </summary> public void DrawGUI_BuildSettings() { var currentParams = P.GetCurrentParams(); EditorGUI.BeginChangeCheck(); bool fold; using (new GUILayout.VerticalScope(Styles.helpBox)) { using (new GUILayout.HorizontalScope()) { fold = HEditorGUILayout.Foldout(E.i.fold.Has(E.FoldBuildSettings), "Build Settings"); E.i.fold.Toggle(E.FoldBuildSettings, fold); GUILayout.FlexibleSpace(); //EditorGUI.DrawRect( GUILayoutUtility.GetLastRect(), new Color( 0, 0, 1, 0.2f ) ); var r = EditorHelper.GetLayout(Styles.iconSettings, HEditorStyles.iconButton); if (HEditorGUI.IconButton(r, Styles.iconSettings, B.kBuildSettings, 1)) { UnityEditorMenu.File_Build_Settings(); } } if (fold) { EditorGUI.indentLevel++; currentParams.development = EditorGUILayout.Toggle(S._DevelopmentBuild, currentParams.development); if (P.i.selectBuildTargetGroup == BuildTargetGroup.Android) { currentParams.buildAppBundle = EditorGUILayout.Toggle(S._BuildAppBundle_GooglePlay_, currentParams.buildAppBundle); } if (P.i.selectBuildTargetGroup == BuildTargetGroup.Standalone || P.i.selectBuildTargetGroup == BuildTargetGroup.Android) { string[] ss = { "Default", "LZ4", "LZ4HC" }; switch (EditorGUILayout.Popup(S._CompressionMethod, currentParams.compression.ToIndex(), ss, Styles.miniPopup)) { case 0: currentParams.compression = Compression.None; break; case 1: currentParams.compression = Compression.Lz4; break; case 2: currentParams.compression = Compression.Lz4HC; break; } } EditorGUI.indentLevel--; GUILayout.Space(2); } } if (EditorGUI.EndChangeCheck()) { s_changed = true; } }