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_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); }
/// <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; } } }