public static void CreateGame(Settings ga, GA_SignUp signup, int studioIndex, string gameTitle, string googlePlayPublicKey, GAPlatformSignUp platform, AppFiguresGame appFiguresGame) { Hashtable jsonTable = new Hashtable(); if(appFiguresGame != null) { jsonTable["title"] = gameTitle; jsonTable["store_id"] = appFiguresGame.AppID; jsonTable["store"] = appFiguresGame.Store; jsonTable["googleplay_key"] = string.IsNullOrEmpty(googlePlayPublicKey) ? null : googlePlayPublicKey; } else { jsonTable["title"] = gameTitle; jsonTable["store_id"] = null; jsonTable["store"] = null; jsonTable["googleplay_key"] = string.IsNullOrEmpty(googlePlayPublicKey) ? null : googlePlayPublicKey; } byte[] data = System.Text.Encoding.UTF8.GetBytes(GA_MiniJSON.JsonEncode(jsonTable)); string url = _gaUrl + "studios/" + ga.Studios[studioIndex].ID + "/games"; WWW www = new WWW(url, data, GA_EditorUtilities.WWWHeadersWithAuthorization(ga.TokenGA)); GA_ContinuationManager.StartCoroutine(CreateGameFrontend(www, ga, signup, platform, appFiguresGame), () => www.isDone); }
private static IEnumerator<WWW> CreateGameFrontend(WWW www, Settings ga, GA_SignUp signup, GAPlatformSignUp platform, AppFiguresGame appFiguresGame) { yield return www; try { Hashtable returnParam = null; string error = ""; if(!string.IsNullOrEmpty(www.text)) { returnParam = (Hashtable)GA_MiniJSON.JsonDecode(www.text); if(returnParam.ContainsKey("errors")) { ArrayList errorList = (ArrayList)returnParam["errors"]; if(errorList != null && errorList.Count > 0) { Hashtable errors = (Hashtable)errorList[0]; if(errors.ContainsKey("msg")) { error = errors["msg"].ToString(); } } } } if(string.IsNullOrEmpty(www.error)) { if(!String.IsNullOrEmpty(error)) { Debug.LogError(error); SetLoginStatus("Failed to create game.", ga); signup.CreateGameFailed(); } else { ga.LastCreatedGamePlatform = (GAPlatform)((int)(platform + 1)); GetUserData(ga); signup.CreateGameComplete(); } } else { Debug.LogError("Failed to create game: " + www.error + " " + error); SetLoginStatus("Failed to create game.", ga); signup.CreateGameFailed(); } } catch { Debug.LogError("Failed to create game"); SetLoginStatus("Failed to create game.", ga); signup.CreateGameFailed(); } }
void OnGUI() { switch(TourStep) { #region sign up case 0: // sign up GUILayout.Space(20); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label(GameAnalytics.SettingsGA.UserIcon, new GUILayoutOption[] { GUILayout.Width(40), GUILayout.MaxHeight(40) }); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.Space(5); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label("Create your account", EditorStyles.whiteLargeLabel); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); // first name GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label(_firstNameLabel, GUILayout.Width(INPUT_WIDTH)); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GameAnalytics.SettingsGA.FirstName = EditorGUILayout.TextField("", GameAnalytics.SettingsGA.FirstName, GUILayout.Width(INPUT_WIDTH)); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); // last name GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label(_lastNameLabel, GUILayout.Width(INPUT_WIDTH)); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GameAnalytics.SettingsGA.LastName = EditorGUILayout.TextField("", GameAnalytics.SettingsGA.LastName, GUILayout.Width(INPUT_WIDTH)); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); // e-mail GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label(_emailLabel, GUILayout.Width(INPUT_WIDTH)); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GameAnalytics.SettingsGA.EmailGA = EditorGUILayout.TextField("", GameAnalytics.SettingsGA.EmailGA, GUILayout.Width(INPUT_WIDTH)); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); // password GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label(_passwordLabel, GUILayout.Width(INPUT_WIDTH)); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GameAnalytics.SettingsGA.PasswordGA = EditorGUILayout.PasswordField("", GameAnalytics.SettingsGA.PasswordGA, GUILayout.Width(INPUT_WIDTH)); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); // confirm password GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label(_passwordConfirmLabel, GUILayout.Width(INPUT_WIDTH)); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GameAnalytics.SettingsGA.PasswordConfirm = EditorGUILayout.PasswordField("", GameAnalytics.SettingsGA.PasswordConfirm, GUILayout.Width(INPUT_WIDTH)); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); // studio name GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label(_studioNameLabel, GUILayout.Width(INPUT_WIDTH)); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GameAnalytics.SettingsGA.StudioName = EditorGUILayout.TextField("", GameAnalytics.SettingsGA.StudioName, GUILayout.Width(INPUT_WIDTH)); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); // email opt in EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GameAnalytics.SettingsGA.EmailOptIn = EditorGUILayout.Toggle("", GameAnalytics.SettingsGA.EmailOptIn, GUILayout.Width(15)); GUILayout.Label(_emailOptInLabel); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); // terms of service GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label("By activating your account you agree with our", GUILayout.Width(248)); GUILayout.Space(-5); GUILayout.BeginVertical(); GUILayout.Space(2); if(GUILayout.Button("Terms of Service", EditorStyles.boldLabel, GUILayout.Width(105))) { Application.OpenURL("http://www.gameanalytics.com/terms.html"); } EditorGUIUtility.AddCursorRect(GUILayoutUtility.GetLastRect(), MouseCursor.Link); GUILayout.EndVertical(); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); // create account button EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUI.enabled = !_signUpInProgress; if(GUILayout.Button("Create account", new GUILayoutOption[] { GUILayout.Width(200), GUILayout.MaxHeight(30) })) { _signUpInProgress = true; GA_SettingsInspector.SignupUser(GameAnalytics.SettingsGA, this); } GUI.enabled = true; GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); break; #endregion // sign up #region add your game case 1: // add your game GUILayout.Space(20); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label(GameAnalytics.SettingsGA.GameIcon, new GUILayoutOption[] { GUILayout.Width(40), GUILayout.MaxHeight(40) }); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.Space(5); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label("Add your game", EditorStyles.whiteLargeLabel); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label("You can quickly add your game by searching the app store."); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); // game name GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label(_gameNameLabel, GUILayout.Width(500)); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); int tmpFontSize = GUI.skin.textField.fontSize; Vector2 tmpOffset = GUI.skin.textField.contentOffset; GUI.skin.textField.fontSize = 12; GUI.skin.textField.contentOffset = new Vector2(6, 6); GameAnalytics.SettingsGA.GameName = EditorGUILayout.TextField("", GameAnalytics.SettingsGA.GameName, new GUILayoutOption[] { GUILayout.Width(300), GUILayout.Height(30) }); GUI.skin.textField.fontSize = tmpFontSize; GUI.skin.textField.contentOffset = tmpOffset; if(GUILayout.Button("Find your game", new GUILayoutOption[] { GUILayout.Width(200), GUILayout.MaxHeight(30) })) { GA_SettingsInspector.GetAppFigures(GameAnalytics.SettingsGA, this); } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.Space(); GA_SettingsInspector.Splitter(new Color(0.35f, 0.35f, 0.35f), 1, 30); if(_appFiguresGames != null && _appFiguresGames.Count > 0) { EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label("'" + _appFigName + "' matched " + _appFiguresGames.Count + " titles.", EditorStyles.boldLabel); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); _appScrollPos = GUILayout.BeginScrollView(_appScrollPos, GUI.skin.box, GUILayout.Width(571)); for(int i = 0; i < _appFiguresGames.Count; i++) { GUILayout.BeginHorizontal(); if(_appFiguresGames[i].Icon != null) { GUILayout.Label(_appFiguresGames[i].Icon, new GUILayoutOption[] { GUILayout.Width(32), GUILayout.Height(32) }); } else { GUILayout.Label("", new GUILayoutOption[] { GUILayout.Width(32), GUILayout.Height(32) }); } Rect lastRect = GUILayoutUtility.GetLastRect(); Vector2 tmpOffsetLabel = GUI.skin.label.contentOffset; GUI.skin.label.contentOffset = new Vector2(0, 9); GUILayout.Label(_appFiguresGames[i].Name, GUILayout.Width(200)); GUILayout.Label(_appFiguresGames[i].Developer, GUILayout.Width(200)); PaintAppStoreIcon(_appFiguresGames[i].Store); GUI.skin.label.contentOffset = tmpOffsetLabel; GUILayout.EndHorizontal(); GA_SettingsInspector.Splitter(new Color(0.35f, 0.35f, 0.35f), 1, 10); Rect appFigRect = new Rect(lastRect.x - 5, lastRect.y - 5, lastRect.width + 520, lastRect.height + 10); if(GUI.Button(appFigRect, "", GUIStyle.none)) { _appFiguresGame = _appFiguresGames[i]; TourStep = 3; } EditorGUIUtility.AddCursorRect(appFigRect, MouseCursor.Link); } GUILayout.EndScrollView(); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); } EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label("If your game is still in development or not in the app store, please add it manually."); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.Space(); // create new game button GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if(GUILayout.Button("Create new game", new GUILayoutOption[] { GUILayout.Width(200), GUILayout.Height(30) })) { TourStep = 2; } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); break; #endregion // add your game #region create new game case 2: // create new game GUILayout.Space(20); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label(GameAnalytics.SettingsGA.GameIcon, new GUILayoutOption[] { GUILayout.Width(40), GUILayout.MaxHeight(40) }); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.Space(5); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label("Create new game", EditorStyles.whiteLargeLabel); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.Space(); // game name GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label(_gameNameLabel, GUILayout.Width(300)); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); int tmpFontSize2 = GUI.skin.textField.fontSize; Vector2 tmpOffset2 = GUI.skin.textField.contentOffset; GUI.skin.textField.fontSize = 12; GUI.skin.textField.contentOffset = new Vector2(5, 5); GameAnalytics.SettingsGA.GameName = EditorGUILayout.TextField("", GameAnalytics.SettingsGA.GameName, new GUILayoutOption[] { GUILayout.Width(300), GUILayout.Height(30) }); GUI.skin.textField.fontSize = tmpFontSize2; GUI.skin.textField.contentOffset = tmpOffset2; GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); this._selectedStudio = EditorGUILayout.Popup("", this._selectedStudio, Studio.GetStudioNames(GameAnalytics.SettingsGA.Studios, false), GUILayout.Width(200)); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); this._selectedPlatform = (GAPlatformSignUp)EditorGUILayout.Popup("", (int)this._selectedPlatform, System.Enum.GetNames(typeof(GAPlatformSignUp)), GUILayout.Width(200)); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); if(this._selectedPlatform == GAPlatformSignUp.Android) { GUILayout.BeginHorizontal(); EditorGUILayout.HelpBox("PLEASE NOTICE: If you want to validate your Android in-app purchase please enter your Google Play License key (public key). Click here to learn more about the Google Play License key.", MessageType.Info); if(GUI.Button(GUILayoutUtility.GetLastRect(), "", GUIStyle.none)) { //Application.OpenURL("https://github.com/GameAnalytics/GA-SDK-UNITY/wiki/Configure%20XCode"); } EditorGUIUtility.AddCursorRect(GUILayoutUtility.GetLastRect(), MouseCursor.Link); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.Label("Google Play License key", GUILayout.Width(150)); this._googlePlayPublicKey = GUILayout.TextField(this._googlePlayPublicKey); GUILayout.EndHorizontal(); } EditorGUILayout.Space(); EditorGUILayout.Space(); // create game button GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUI.enabled = !_createGameInProgress; if(GUILayout.Button("Create game", new GUILayoutOption[] { GUILayout.Width(200), GUILayout.MaxHeight(30) })) { _createGameInProgress = true; GA_SettingsInspector.CreateGame(GameAnalytics.SettingsGA, this, this._selectedStudio, GameAnalytics.SettingsGA.GameName, this._googlePlayPublicKey, this._selectedPlatform, null); } GUI.enabled = true; GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.Space(); GA_SettingsInspector.Splitter(new Color(0.35f, 0.35f, 0.35f), 1, 30); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label("Go back to "); Rect r1 = GUILayoutUtility.GetLastRect(); GUILayout.Space(-5); GUILayout.BeginVertical(); GUILayout.Space(2); GUILayout.Label("Add your game", EditorStyles.boldLabel); GUILayout.EndVertical(); Rect r2 = GUILayoutUtility.GetLastRect(); Rect r3 = new Rect(r1.x, r1.y, r1.width + r2.width, r2.height); if(GUI.Button(r3, "", GUIStyle.none)) { TourStep = 1; } EditorGUIUtility.AddCursorRect(r3, MouseCursor.Link); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); break; #endregion // create new game #region app figures add game case 3: // app figures add game GUILayout.Space(20); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label(GameAnalytics.SettingsGA.GameIcon, new GUILayoutOption[] { GUILayout.Width(40), GUILayout.MaxHeight(40) }); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.Space(5); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label("Is this your game?", EditorStyles.whiteLargeLabel); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label("Please confirm that this is the game you want to add."); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.Space(); // game name GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if(_appFiguresGame.Icon != null) { GUILayout.Label(_appFiguresGame.Icon, new GUILayoutOption[] { GUILayout.Width(100), GUILayout.Height(100) }); } else { GUILayout.Label("", new GUILayoutOption[] { GUILayout.Width(100), GUILayout.Height(100) }); } GUILayout.Label("", GUILayout.Width(25)); GUILayout.BeginVertical(); GUILayout.Label(_appFiguresGame.Name, EditorStyles.whiteLargeLabel, GUILayout.Width(200)); GUILayout.Label(_appFiguresGame.Developer, GUILayout.Width(200)); GUILayout.Label("", GUILayout.Height(20)); PaintAppStoreIcon(_appFiguresGame.Store); GUILayout.EndVertical(); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); if(_appFiguresGame.Store.Equals("google_play")) { GUILayout.BeginHorizontal(); EditorGUILayout.HelpBox("PLEASE NOTICE: If you want to validate your Android in-app purchase please enter your Google Play License key (public key). Click here to learn more about the Google Play License key.", MessageType.Info); if(GUI.Button(GUILayoutUtility.GetLastRect(), "", GUIStyle.none)) { //Application.OpenURL("https://github.com/GameAnalytics/GA-SDK-UNITY/wiki/Configure%20XCode"); } EditorGUIUtility.AddCursorRect(GUILayoutUtility.GetLastRect(), MouseCursor.Link); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.Label("Google Play License key", GUILayout.Width(150)); this._googlePlayPublicKey = GUILayout.TextField(this._googlePlayPublicKey); GUILayout.EndHorizontal(); } EditorGUILayout.Space(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); this._selectedStudio = EditorGUILayout.Popup("", this._selectedStudio, Studio.GetStudioNames(GameAnalytics.SettingsGA.Studios, false), GUILayout.Width(200)); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); // create game button GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUI.enabled = !_createGameInProgress; if(GUILayout.Button("Add game", new GUILayoutOption[] { GUILayout.Width(200), GUILayout.MaxHeight(30) })) { _createGameInProgress = true; this._selectedPlatform = _appFiguresGame.Store.Equals("google_play") || _appFiguresGame.Store.Equals("amazon_appstore") ? GAPlatformSignUp.Android : GAPlatformSignUp.iOS; GA_SettingsInspector.CreateGame(GameAnalytics.SettingsGA, this, this._selectedStudio, _appFiguresGame.Name, this._googlePlayPublicKey, this._selectedPlatform, _appFiguresGame); } GUI.enabled = true; GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label("Go back to "); Rect r21 = GUILayoutUtility.GetLastRect(); GUILayout.Space(-5); GUILayout.BeginVertical(); GUILayout.Space(2); GUILayout.Label("results", EditorStyles.boldLabel); GUILayout.EndVertical(); Rect r22 = GUILayoutUtility.GetLastRect(); Rect r23 = new Rect(r21.x, r21.y, r21.width + r22.width, r22.height); if(GUI.Button(r23, "", GUIStyle.none)) { TourStep = 1; } EditorGUIUtility.AddCursorRect(r23, MouseCursor.Link); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.Space(); GA_SettingsInspector.Splitter(new Color(0.35f, 0.35f, 0.35f), 1, 30); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label("If your game is still in development or not in the app store, please add it manually."); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.Space(); // create new game button GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if(GUILayout.Button("Create new game", new GUILayoutOption[] { GUILayout.Width(200), GUILayout.MaxHeight(30) })) { TourStep = 2; } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); break; #endregion // app figures add game #region game created case 4: GUILayout.Space(20); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label(GameAnalytics.SettingsGA.Logo, new GUILayoutOption[] { GUILayout.Width(40), GUILayout.Height(40) }); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.Space(5); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label("Congratulations!", EditorStyles.whiteLargeLabel); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label("Your game has been created successfully."); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.Space(); GA_SettingsInspector.Splitter(new Color(0.35f, 0.35f, 0.35f), 1, 30); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); TextAnchor tmpLA = GUI.skin.label.alignment; GUI.skin.label.alignment = TextAnchor.UpperCenter; GUILayout.Label("We've put together a simple guide to help you instrument GameAnalytics in your game.", GUILayout.MaxWidth(540)); GUI.skin.label.alignment = tmpLA; GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.Space(); // create game button GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if(GUILayout.Button("Start guide", new GUILayoutOption[] { GUILayout.Width(200), GUILayout.MaxHeight(30) })) { TourStep = 5; } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); break; #endregion // game created #region guide case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: int guideStep = TourStep - 4; GUILayout.Space(20); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label(GameAnalytics.SettingsGA.InstrumentIcon, new GUILayoutOption[] { GUILayout.Width(40), GUILayout.Height(40) }); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.Space(5); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label("Start instrumenting", EditorStyles.whiteLargeLabel); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Label("Let us guide you through getting properly setup with GameAnalytics."); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.Space(); GA_SettingsInspector.Splitter(new Color(0.35f, 0.35f, 0.35f), 1, 30); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if(guideStep == 10) GUILayout.Label(GetGuideStepTitle(guideStep), EditorStyles.whiteLargeLabel, GUILayout.Width(464)); else GUILayout.Label(GetGuideStepTitle(guideStep), EditorStyles.whiteLargeLabel, GUILayout.Width(470)); GUILayout.BeginVertical(); GUILayout.Space(7); if(guideStep == 10) GUILayout.Label("STEP " + (guideStep) + " OF 10", GUILayout.Width(87)); else GUILayout.Label("STEP " + (guideStep) + " OF 10", GUILayout.Width(80)); GUILayout.EndVertical(); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.BeginVertical(); StringWithType[] guideStepTexts = GetGuideStepText(guideStep); foreach(StringWithType s in guideStepTexts) { if(s.Type == StringType.Label) { GUILayout.Label(s.Text, EditorStyles.wordWrappedLabel, GUILayout.MaxWidth(550)); } else if(s.Type == StringType.TextBox) { TextAnchor tmpA = GUI.skin.textField.alignment; int tmpFS = GUI.skin.textField.fontSize; GUI.skin.textField.alignment = TextAnchor.MiddleLeft; GUI.skin.textField.fontSize = 12; GUI.skin.textField.padding = new RectOffset(10, 1, 10, 10); GUILayout.TextField(s.Text, new GUILayoutOption[] { GUILayout.MaxWidth(550), GUILayout.Height(34) }); GUI.skin.textField.alignment = tmpA; GUI.skin.textField.fontSize = tmpFS; GUI.skin.textField.padding = new RectOffset(3, 3, 1, 2); } else if(s.Type == StringType.Link) { GUI.skin.label.fontStyle = FontStyle.Bold; float sl = GUI.skin.button.CalcSize(new GUIContent(s.Text)).x; if(GUILayout.Button(s.Text, EditorStyles.whiteLabel, GUILayout.MaxWidth(sl))) { Application.OpenURL(s.Link); } GUI.skin.label.fontStyle = FontStyle.Normal; EditorGUIUtility.AddCursorRect(GUILayoutUtility.GetLastRect(), MouseCursor.Link); } } GUILayout.EndVertical(); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.Space(); GA_SettingsInspector.Splitter(new Color(0.35f, 0.35f, 0.35f), 1, 30); // create game button string buttonText = "Next step"; if(TourStep == 14) { buttonText = "Done"; } GUI.BeginGroup(new Rect(0, 420, 640, 50)); //GUILayout.BeginHorizontal(); //GUILayout.FlexibleSpace(); //GUILayout.BeginVertical(); //GUILayout.Space(7); GUI.Label(new Rect(43, 7, 500, 50), GetGuideStepNext(guideStep)); //GUILayout.EndVertical(); if(guideStep > 1 && GUI.Button(new Rect(454, 0, 30, 30), "<")) { TourStep--; } if(GUI.Button(new Rect(489, 0, 100, 30), buttonText)) { if(TourStep < 14) TourStep++; else Close(); } //GUILayout.FlexibleSpace(); //GUILayout.EndHorizontal(); GUI.EndGroup(); break; #endregion // guide } }