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(); }
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); } }