Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        /// <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;
                }
            }
        }