private void OnGUI() { // Draw header area SRInternalEditorUtil.BeginDrawBackground(); SRInternalEditorUtil.DrawLogo(SRInternalEditorUtil.GetWelcomeLogo()); SRInternalEditorUtil.EndDrawBackground(); // Draw header/content divider EditorGUILayout.BeginVertical(SRInternalEditorUtil.Styles.SettingsHeaderBoxStyle); EditorGUILayout.EndVertical(); _scrollPosition = EditorGUILayout.BeginScrollView(_scrollPosition); GUILayout.Label("Welcome", SRInternalEditorUtil.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.", SRInternalEditorUtil.Styles.ParagraphLabel); if (SRInternalEditorUtil.ClickableLabel( "Note: For more detailed information <color={0}>click here</color> to visit the online documentation." .Fmt(SRInternalEditorUtil.Styles.LinkColour), SRInternalEditorUtil.Styles.ParagraphLabel)) { Application.OpenURL(SRDebugEditorStrings.Current.SettingsDocumentationUrl); } GUILayout.Label("Quick Start", SRInternalEditorUtil.Styles.HeaderLabel); 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.", SRInternalEditorUtil.Styles.ParagraphLabel); GUILayout.Label( "By default, SRDebugger loads automatically when your game starts. " + "You can change this behaviour from the SRDebugger Settings window.", SRInternalEditorUtil.Styles.ParagraphLabel); DrawVideo(); EditorGUILayout.Space(); GUILayout.Label("Customization", SRInternalEditorUtil.Styles.HeaderLabel); if (SRInternalEditorUtil.ClickableLabel( "Many features of SRDebugger can be configured from the <color={0}>SRDebugger Settings</color> window." .Fmt( SRInternalEditorUtil.Styles.LinkColour), SRInternalEditorUtil.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.", SRInternalEditorUtil.Styles.ParagraphLabel); GUILayout.Label("What Next?", SRInternalEditorUtil.Styles.HeaderLabel); if (SRInternalEditorUtil.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(SRInternalEditorUtil.Styles.LinkColour), SRInternalEditorUtil.Styles.ParagraphLabel)) { Application.OpenURL(SRDebugEditorStrings.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 as this helps us continue to provide updates and support to our users. ", SRInternalEditorUtil.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.", SRInternalEditorUtil.Styles.ParagraphLabel); SRInternalEditorUtil.DrawFooterLayout(position.width - 15); EditorGUILayout.EndScrollView(); Repaint(); }
private void DrawBugReportSignupForm(Settings settings) { var isWeb = false; #if UNITY_WEBPLAYER EditorGUILayout.HelpBox("Signup form is not available when build target is Web Player.", MessageType.Error); isWeb = true; #endif EditorGUI.BeginDisabledGroup(isWeb || !_enableTabChange); GUILayout.Label("Signup Form", SRInternalEditorUtil.Styles.HeaderLabel); GUILayout.Label( "SRDebugger requires a free API key to enable the bug reporter system. This form will acquire one for you.", SRInternalEditorUtil.Styles.ParagraphLabel); if ( SRInternalEditorUtil.ClickableLabel( "Already got an API key? <color={0}>Click here</color>.".Fmt(SRInternalEditorUtil.Styles.LinkColour), SRInternalEditorUtil.Styles.RichTextLabel)) { _showBugReportSignupForm = false; Repaint(); } EditorGUILayout.Space(); GUILayout.Label("Invoice/Order Number", EditorStyles.boldLabel); GUILayout.Label( "Enter the order number from your Asset Store purchase email.", EditorStyles.miniLabel); _invoiceNumber = EditorGUILayout.TextField(_invoiceNumber); EditorGUILayout.Space(); GUILayout.Label("Email Address", EditorStyles.boldLabel); GUILayout.Label( "Provide an email address where the bug reports should be sent.", EditorStyles.miniLabel); _emailAddress = EditorGUILayout.TextField(_emailAddress); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); if (SRInternalEditorUtil.ClickableLabel( "I agree to the <color={0}>terms and conditions</color>.".Fmt(SRInternalEditorUtil.Styles.LinkColour), SRInternalEditorUtil.Styles.RichTextLabel)) { ApiSignupTermsWindow.Open(); } _agreeLegal = EditorGUILayout.Toggle(_agreeLegal); EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); var isEnabled = !string.IsNullOrEmpty(_invoiceNumber) && !string.IsNullOrEmpty(_emailAddress) && _agreeLegal; EditorGUI.BeginDisabledGroup(!isEnabled); if (GUILayout.Button("Submit")) { _errorMessage = null; _enableTabChange = false; EditorApplication.delayCall += () => { ApiSignup.SignUp(_emailAddress, _invoiceNumber, (success, key, email, error) => OnSignupResult(success, key, email, error, settings)); Repaint(); }; } EditorGUI.EndDisabledGroup(); if (!string.IsNullOrEmpty(_errorMessage)) { EditorGUILayout.HelpBox(_errorMessage, MessageType.Error, true); } GUILayout.FlexibleSpace(); GUILayout.Label("Having trouble? Please email [email protected] for assistance.", EditorStyles.miniLabel); EditorGUI.EndDisabledGroup(); }