/// <summary> /// Provide static access to setup for facilitating automated builds. /// </summary> /// <param name="webClientId">The oauth2 client id for the game. This is only /// needed if the ID Token or access token are needed.</param> /// <param name="appId">App identifier.</param> /// <param name="nearbySvcId">Optional nearby connection serviceId</param> /// <param name="requiresGooglePlus">Indicates that GooglePlus should be enabled</param> /// <returns>true if successful</returns> public static bool PerformSetup(string webClientId, string appId, string nearbySvcId) { if (!string.IsNullOrEmpty(webClientId)) { if (!GPGSUtil.LooksLikeValidClientId(webClientId)) { GPGSUtil.Alert(GPGSStrings.Setup.ClientIdError); return(false); } string serverAppId = webClientId.Split('-')[0]; if (!serverAppId.Equals(appId)) { GPGSUtil.Alert(GPGSStrings.Setup.AppIdMismatch); return(false); } } // check for valid app id if (!GPGSUtil.LooksLikeValidAppId(appId) && string.IsNullOrEmpty(nearbySvcId)) { GPGSUtil.Alert(GPGSStrings.Setup.AppIdError); return(false); } if (nearbySvcId != null) { if (!NearbyConnectionUI.PerformSetup(nearbySvcId, true)) { return(false); } } GPGSProjectSettings.Instance.Set(GPGSUtil.APPIDKEY, appId); GPGSProjectSettings.Instance.Set(GPGSUtil.WEBCLIENTIDKEY, webClientId); GPGSProjectSettings.Instance.Save(); GPGSUtil.UpdateGameInfo(); // check that Android SDK is there if (!GPGSUtil.HasAndroidSdk()) { Debug.LogError("Android SDK not found."); EditorUtility.DisplayDialog( GPGSStrings.AndroidSetup.SdkNotFound, GPGSStrings.AndroidSetup.SdkNotFoundBlurb, GPGSStrings.Ok); return(false); } // Generate AndroidManifest.xml GPGSUtil.GenerateAndroidManifest(); // refresh assets, and we're done AssetDatabase.Refresh(); GPGSProjectSettings.Instance.Set(GPGSUtil.ANDROIDSETUPDONEKEY, true); GPGSProjectSettings.Instance.Save(); return(true); }
public static void MenuItemGooglePlayGamesAndroidSdk() { // check that Android SDK is there string sdkPath = GPGSUtil.GetAndroidSdkPath(); if (!GPGSUtil.HasAndroidSdk()) { EditorUtility.DisplayDialog(GPGSStrings.AndroidSetup.SdkNotFound, GPGSStrings.AndroidSetup.SdkNotFoundBlurb, GPGSStrings.Ok); return; } bool launch = EditorUtility.DisplayDialog( GPGSStrings.ExternalLinks.GooglePlayGamesAndroidSdkTitle, GPGSStrings.ExternalLinks.GooglePlayGamesAndroidSdkBlurb, GPGSStrings.Yes, GPGSStrings.No); if (launch) { string exeName = sdkPath + GPGSUtil.SlashesToPlatformSeparator("/tools/android"); string altExeName = sdkPath + GPGSUtil.SlashesToPlatformSeparator("/tools/android.bat"); EditorUtility.DisplayDialog( GPGSStrings.ExternalLinks.GooglePlayGamesAndroidSdkTitle, GPGSStrings.ExternalLinks.GooglePlayGamesAndroidSdkInstructions, GPGSStrings.Ok); if (System.IO.File.Exists(exeName)) { System.Diagnostics.Process.Start(exeName); } else if (System.IO.File.Exists(altExeName)) { System.Diagnostics.Process.Start(altExeName); } else { EditorUtility.DisplayDialog( GPGSStrings.ExternalLinks.GooglePlayGamesSdkTitle, GPGSStrings.ExternalLinks.GooglePlayGamesAndroidSdkManagerFailed, GPGSStrings.Ok); } } }