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);
        }
示例#2
0
        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");
            }
        }
示例#3
0
        public bool UIDraw(Rect rect, P.Params currentParams)
        {
            if (!HEditorGUI.IconButton(rect.W(16), EditorIcon.settings))
            {
                return(false);
            }

            UnityEditorMenu.File_Build_Settings();

            return(false);
        }
示例#4
0
        /////////////////////////////////////////
        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();
        }
示例#5
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);
        }
示例#6
0
        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();
            }
        }
示例#7
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;
                }
            }
        }
示例#8
0
        /// <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;
            }
        }