private void OnGUI()
        {
            // Draw header area
            SRDebugEditorUtil.BeginDrawBackground();
            SRDebugEditorUtil.DrawLogo(SRDebugEditorUtil.GetWelcomeLogo());
            SRDebugEditorUtil.EndDrawBackground();

            // Draw header/content divider
            EditorGUILayout.BeginVertical(SRDebugEditorUtil.Styles.SettingsHeaderBoxStyle);
            EditorGUILayout.EndVertical();

            _scrollPosition = EditorGUILayout.BeginScrollView(_scrollPosition);

            GUILayout.Label("Welcome", SRDebugEditorUtil.Styles.HeaderLabel);

            GUILayout.Label(
                "Thank you for purchasing SRDebugger, your support is very much appreciated and we hope you find it useful for your project. " +
                "This window contains a quick guide to get to help get you started with SRDebugger.",
                SRDebugEditorUtil.Styles.ParagraphLabel);

            if (SRDebugEditorUtil.ClickableLabel(
                    "Note: For more detailed information <color={0}>click here</color> to visit the online documentation."
                    .Fmt(SRDebugEditorUtil.Styles.LinkColour),
                    SRDebugEditorUtil.Styles.ParagraphLabel))
            {
                Application.OpenURL(SRDebugStrings.Current.SettingsDocumentationUrl);
            }

#if UNITY_5_3_0 || UNITY_5_3_1 || UNITY_5_3_2
            EditorGUILayout.HelpBox(
                "On Unity versions prior to 5.3.3 there is a bug causing errors to be printed to the console when using the docked tools. Please upgrade to at least Unity 5.3.3 to prevent this bug.",
                MessageType.Warning, true);
#endif
            GUILayout.Label("Quick Start", SRDebugEditorUtil.Styles.HeaderLabel);
#if UNITY_5 || UNITY_5_3_OR_NEWER
            GUILayout.Label(
                "Now that you have imported the package, you should find the trigger available in the top-left of your game window when in play mode. " +
                "Triple-clicking this trigger will bring up the debug panel. The trigger is hidden until clicked.",
                SRDebugEditorUtil.Styles.ParagraphLabel);

            GUILayout.Label(
                "By default, SRDebugger loads automatically when your game starts. " +
                "You can change this behaviour from the SRDebugger Settings window.",
                SRDebugEditorUtil.Styles.ParagraphLabel);
#else
            GUILayout.Label(
                "Drag the <b>SRDebugger.Init</b> prefab into the first scene of your game. " +
                "Once initialised, SRDebugger will be available even after loading new scenes. We recommend adding the SRDebugger.Init prefab to the first scene " +
                "of your game so that the debug panel is available in all subsequent scenes.",
                SRDebugEditorUtil.Styles.ParagraphLabel);

            GUILayout.Label(
                "Once the prefab is in your scene, you should find the trigger available in the top-left of your game window when in play mode. " +
                "Triple-clicking this trigger will bring up the debug panel. The trigger is hidden until clicked.",
                SRDebugEditorUtil.Styles.ParagraphLabel);
#endif

            DrawVideo();

            EditorGUILayout.Space();

            GUILayout.Label("Customization", SRDebugEditorUtil.Styles.HeaderLabel);

            if (SRDebugEditorUtil.ClickableLabel(
                    "Many features of SRDebugger can be configured from the <color={0}>SRDebugger Settings</color> window."
                    .Fmt(
                        SRDebugEditorUtil.Styles.LinkColour), SRDebugEditorUtil.Styles.ParagraphLabel))
            {
                SRDebuggerSettingsWindow.Open();
            }

            GUILayout.Label(
                "From the settings window you can configure loading behaviour, trigger position, docked tools layout, and more. " +
                "You can enable the bug reporter service by using the sign-up form to get a free API key.",
                SRDebugEditorUtil.Styles.ParagraphLabel);

            GUILayout.Label("What Next?", SRDebugEditorUtil.Styles.HeaderLabel);

            if (SRDebugEditorUtil.ClickableLabel(
                    "For more detailed information about SRDebugger's features or details about the Options Tab and script API, check the <color={0}>online documentation</color>."
                    .Fmt(SRDebugEditorUtil.Styles.LinkColour), SRDebugEditorUtil.Styles.ParagraphLabel))
            {
                Application.OpenURL(SRDebugStrings.Current.SettingsDocumentationUrl);
            }

            GUILayout.Label(
                "Thanks again for purchasing SRDebugger. " +
                "If you find it useful please consider leaving a rating or review on the Asset Store page to help us spread the word. ",
                SRDebugEditorUtil.Styles.ParagraphLabel);

            GUILayout.Label(
                "If you have any questions or concerns please do not hesitate to get in touch with us via email or the Unity forums.",
                SRDebugEditorUtil.Styles.ParagraphLabel);

            SRDebugEditorUtil.DrawFooterLayout(UnityEngine.Screen.width - 15);

            EditorGUILayout.EndScrollView();

            Repaint();
        }
Example #2
0
        private void OnGUI()
        {
            // Draw header area
            SRDebugEditorUtil.BeginDrawBackground();
            SRDebugEditorUtil.DrawLogo(SRDebugEditorUtil.GetLogo());
            SRDebugEditorUtil.EndDrawBackground();

            // Draw header/content divider
            EditorGUILayout.BeginVertical(SRDebugEditorUtil.Styles.SettingsHeaderBoxStyle);
            EditorGUILayout.EndVertical();

            // Draw tab buttons
            var rect = EditorGUILayout.BeginVertical(GUI.skin.box);

            --rect.width;
            var height = 18;

            EditorGUI.BeginChangeCheck();
            EditorGUI.BeginDisabledGroup(!_enableTabChange);

            for (var i = 0; i < _tabs.Length; ++i)
            {
                var xStart = Mathf.RoundToInt(i * rect.width / _tabs.Length);
                var xEnd   = Mathf.RoundToInt((i + 1) * rect.width / _tabs.Length);

                var pos = new Rect(rect.x + xStart, rect.y, xEnd - xStart, height);

                if (GUI.Toggle(pos, (int)_selectedTab == i, new GUIContent(_tabs[i]), EditorStyles.toolbarButton))
                {
                    _selectedTab = (Tabs)i;
                }
            }

            GUILayoutUtility.GetRect(10f, height);

            EditorGUI.EndDisabledGroup();

            if (EditorGUI.EndChangeCheck())
            {
                GUIUtility.keyboardControl = 0;
            }

            // Draw selected tab

            switch (_selectedTab)
            {
            case Tabs.General:
                DrawTabGeneral();
                break;

            case Tabs.Layout:
                DrawTabLayout();
                break;

            case Tabs.Bug_Reporter:
                DrawTabBugReporter();
                break;

            case Tabs.Shortcuts:
                DrawTabShortcuts();
                break;

            case Tabs.Advanced:
                DrawTabAdvanced();
                break;
            }

            EditorGUILayout.EndVertical();

            // Display rating prompt and link buttons

            EditorGUILayout.LabelField(SRDebugStrings.Current.SettingsRateBoxContents, EditorStyles.miniLabel);

            SRDebugEditorUtil.DrawFooterLayout(Screen.width);

            if (GUI.changed)
            {
                EditorUtility.SetDirty(Settings.Instance);
            }
        }