public void IncrementAchievement(string achievementId, int percentage, [CanBeNull] string achievementName = null) { if (GCenterLoginHelper.Instance.IsSignedIn() && _isInitialized) { var achievement = new ISN_GKAchievement(achievementId) { PercentComplete = percentage }; achievement.Report(result => { if (result.IsSucceeded) { Debug.Log("Incrementing Achievement -> " + (achievementName ?? achievementId) + ", percentage: " + percentage); } else { Debug.Log("Achievement report failed! Code: " + result.Error.Code + " Message: " + result.Error.Message); } }); } }
public void Initialization(Action resultCallback = null) { if (!_isInitialized) { ISN_GKAchievement.LoadAchievements((result) => { if (result.IsSucceeded) { foreach (ISN_GKAchievement achievement in result.Achievements) { Debug.Log("Achievement.ID: " + achievement.Identifier); Debug.Log("Achievement.PercentCompleted: " + achievement.PercentComplete); Debug.Log("Achievement.LastReportDate: " + achievement.LastReportedDate); Debug.Log("Achievement.Completed: " + achievement.Completed); } _isInitialized = true; _viewController = new ISN_GKGameCenterViewController(); resultCallback.SafeInvoke(); } else { Debug.Log("LoadAchievements failed! Code: " + result.Error.Code + " Message: " + result.Error.Message); _isInitialized = false; _viewController = null; } }); } }
private void CheckIfCompleted(string achievementId) { ISN_GKAchievement.LoadAchievements((result) => { if (result.IsSucceeded) { if (result.Achievements.Count == 1) { var achievement = result.Achievements[0]; if (achievement.Completed) { SetResult(SA_TestResult.OK); } else { SetResult(SA_TestResult.WithError("Achievement has to be completed, but it's not")); } } else { SetResult(SA_TestResult.WithError("App should 1 reeported achivement, found " + result.Achievements.Count + " instead")); } } else { SetAPIResult(result); } }); }
public static void ApplyExampleConfig() { Debug.Log("ISN_TestManager::ApplyExampleConfig"); PlayerSettings.iOS.applicationDisplayName = "IOS Native"; PlayerSettings.iOS.appleEnableAutomaticSigning = true; PlayerSettings.iOS.appleDeveloperTeamID = "P42C7H5LKK"; PlayerSettings.SetApplicationIdentifier(BuildTargetGroup.iOS, "com.iosnative"); var settings = ISN_Settings.Instance; //Contacts settings.Contacts = true; //In-Apps ISN_Settings.Instance.InAppProducts.Clear(); var p = new ISN_SKProduct(); p.LocalizedTitle = "iOS Test Product1"; p.ProductIdentifier = "your.product.id1.here"; var p2 = new ISN_SKProduct(); p2.LocalizedTitle = "iOS Test Product1"; p2.ProductIdentifier = "your.product.id2.here"; ISN_Settings.Instance.InAppProducts.Add(p); ISN_Settings.Instance.InAppProducts.Add(p2); //GameKit ISD_API.Capability.GameCenter.Enabled = true; ISN_Settings.Instance.SavingAGame = true; ISN_Settings.Instance.Achievements.Clear(); var achievement = new ISN_GKAchievement("my_first_achievement"); achievement.Name = "IOS Native 2018 First Achievement"; ISN_Settings.Instance.Achievements.Add(achievement); achievement = new ISN_GKAchievement("isn.test.achievement"); achievement.Name = "Achievement #2"; ISN_Settings.Instance.Achievements.Add(achievement); //Replay Kit settings.ReplayKit = true; //AV Kit settings.AVKit = true; //User Notifications settings.UserNotifications = true; ISD_API.Capability.PushNotifications.Enabled = true; //or Vending Test Environment ISD_API.Capability.InAppPurchase.Enabled = true; //social settings.Social = true; }
public override void Test() { ISN_GKAchievement.ResetAchievements((result) => { if (result.IsSucceeded) { CheckIfResetCompleted(); } else { SetAPIResult(result); } }); }
public void Unlock(string achievementId, Action <SA_Result> callback) { ISN_GKAchievement achievement = new ISN_GKAchievement(achievementId); achievement.PercentComplete = 100.0f; achievement.Report((result) => { if (result.IsSucceeded) { UnlockLocally(achievementId); } callback.Invoke(result); }); }
private void Increment(UM_iAchievement achievement, int numSteps, Action <SA_Result> callback) { ISN_GKAchievement iosAchievement = new ISN_GKAchievement(achievement.Identifier); int progress = achievement.CurrentSteps + numSteps; iosAchievement.PercentComplete = progress; iosAchievement.Report((result) => { if (result.IsSucceeded) { IncrementLocally(achievement.Identifier, numSteps); } callback.Invoke(result); }); }
public void Load(Action <UM_AchievementsLoadResult> callback) { Dictionary <string, ISN_GKAchievement> achievementsDict = new Dictionary <string, ISN_GKAchievement>(); foreach (var achievement in ISN_GKAchievement.GetGameAchievements()) { achievementsDict.Add(achievement.Identifier, achievement); } ISN_GKAchievement.LoadAchievements((result) => { UM_AchievementsLoadResult loadResult; if (result.IsSucceeded) { foreach (var achievement in result.Achievements) { if (achievementsDict.ContainsKey(achievement.Identifier)) { string name = achievementsDict[achievement.Identifier].Name; achievement.Name = name; achievementsDict[achievement.Identifier] = achievement; } else { achievementsDict.Add(achievement.Identifier, achievement); } } var achievements = new List <UM_iAchievement>(); foreach (var pair in achievementsDict) { var achievement = pair.Value; var iosAchievement = new UM_IOSAchievement(achievement); SetAchievementCahce(iosAchievement); achievements.Add(iosAchievement); } loadResult = new UM_AchievementsLoadResult(achievements); } else { loadResult = new UM_AchievementsLoadResult(result.Error); } callback.Invoke(loadResult); }); }
public UM_IOSAchievement(ISN_GKAchievement achievement) { m_identifier = achievement.Identifier; m_name = achievement.Name; m_currentSteps = Mathf.RoundToInt(achievement.PercentComplete); m_totalSteps = 100; m_type = UM_AchievementType.INCREMENTAL; if (achievement.Completed) { m_state = UM_AchievementState.UNLOCKED; } else { m_state = UM_AchievementState.REVEALED; } }
public override void Test() { ISN_GKAchievement.LoadAchievements((result) => { if (result.IsSucceeded) { foreach (ISN_GKAchievement achievement in result.Achievements) { ISN_Logger.Log("achievement.Identifier: " + achievement.Identifier); ISN_Logger.Log("achievement.PercentComplete: " + achievement.PercentComplete); ISN_Logger.Log("achievement.LastReportedDate: " + achievement.LastReportedDate); ISN_Logger.Log("achievement.Completed: " + achievement.Completed); ISN_Logger.Log("--------------------------------------"); } } SetAPIResult(result); }); }
private void CheckIfResetCompleted() { ISN_GKAchievement.LoadAchievements((result) => { if (result.IsSucceeded) { if (result.Achievements.Count == 0) { SetResult(SA_TestResult.OK); } else { SetResult(SA_TestResult.WithError("Reporteed achivemnts list has to be eempty, but it's not")); } } else { SetAPIResult(result); } }); }
private void ReportCompletedAchievment(string achievementId) { ISN_GKAchievement achievement1 = new ISN_GKAchievement(achievementId); achievement1.PercentComplete = 100.0f; achievement1.Report((result) => { if (result.IsSucceeded) { //Smalle delay before requiesting reported list SA_Coroutine.WaitForSeconds(3f, () => { CheckIfCompleted(achievementId); }); } else { SetAPIResult(result); } }); }
public void Load(Action <UM_AchievementsLoadResult> callback) { UM_EditorAPIEmulator.WaitForNetwork(() => { UM_AchievementsLoadResult loadResult; var achievements = new List <UM_iAchievement>(); foreach (var achievement in ISN_GKAchievement.GetGameAchievements()) { if (UM_EditorAPIEmulator.HasKey(achievement.Identifier)) { achievement.PercentComplete = UM_EditorAPIEmulator.GetFloat(achievement.Identifier); } var iosAchievement = new UM_IOSAchievement(achievement); SetAchievementCahce(iosAchievement); achievements.Add(iosAchievement); } loadResult = new UM_AchievementsLoadResult(achievements); callback.Invoke(loadResult); }); }
public void Increment(string achievementId, int numSteps, Action <SA_Result> callback) { //We need to caclulate PercentComplete. //Let's see if we have an achivement info already UM_iAchievement achievement = GetAchievementById(achievementId); if (achievement != null) { Increment(achievement, numSteps, callback); } else { Load((result) => { if (result.IsSucceeded) { //It should be cached at this point already achievement = GetAchievementById(achievementId); if (achievement == null) { ISN_GKAchievement iSN_achievement = new ISN_GKAchievement(achievementId); var iosAchievement = new UM_IOSAchievement(iSN_achievement); SetAchievementCahce(iosAchievement); achievement = iosAchievement; } Increment(achievement, numSteps, callback); } else { var error = new SA_Error(100, "Wasn't able to load achievement with id: " + achievementId); callback.Invoke(new SA_Result(error)); } }); } }
void Awake() { ISN_GKLocalPlayerListener.DidModifySavedGame.AddListener(DidModifySavedGame); ISN_GKLocalPlayerListener.HasConflictingSavedGames.AddListener(HasConflictingSavedGames); ISN_GKAchievement.LoadAchievements((result) => { if (result.IsSucceeded) { foreach (ISN_GKAchievement achievement in result.Achievements) { Debug.Log(achievement.Identifier); Debug.Log(achievement.PercentComplete); Debug.Log(achievement.LastReportedDate); Debug.Log(achievement.Completed); } } else { Debug.Log("LoadAchievements failed! Code: " + result.Error.Code + " Message: " + result.Error.Message); } }); ISN_GKAchievement.ResetAchievements((result) => { if (result.IsSucceeded) { Debug.Log("Reset Achievements Success"); } else { Debug.Log("Reset Achievements failed! Code: " + result.Error.Code + " Message: " + result.Error.Message); } }); ISN_GKGameCenterViewController viewController = new ISN_GKGameCenterViewController(); viewController.ViewState = ISN_GKGameCenterViewControllerState.Leaderboards; viewController.Show(); ISN_GKScore scoreReporter = new ISN_GKScore("itunes.leaderboard.id"); scoreReporter.Value = 100; scoreReporter.Context = 1; scoreReporter.Report((result) => { if (result.IsSucceeded) { Debug.Log("Score Report Success"); } else { Debug.Log("Score Report failed! Code: " + result.Error.Code + " Message: " + result.Error.Message); } }); ISN_GKScore scoreReporter1 = new ISN_GKScore("itunes.leaderboard.id.1"); scoreReporter1.Value = 100; scoreReporter1.Context = 1; ISN_GKScore scoreReporter2 = new ISN_GKScore("itunes.leaderboard.id.2"); scoreReporter2.Value = 100; scoreReporter2.Context = 1; var scores = new List <ISN_GKScore>() { scoreReporter1, scoreReporter2 }; ISN_GKScore.ReportScores(scores, (result) => { if (result.IsSucceeded) { Debug.Log("Score Report Success"); } else { Debug.Log("Score Report failed! Code: " + result.Error.Code + " Message: " + result.Error.Message); } }); var leaderboardRequest = new ISN_GKLeaderboard(); leaderboardRequest.Identifier = "itunes.leaderboard.id"; leaderboardRequest.PlayerScope = ISN_GKLeaderboardPlayerScope.Global; leaderboardRequest.TimeScope = ISN_GKLeaderboardTimeScope.AllTime; leaderboardRequest.Range = new ISN_NSRange(1, 10); leaderboardRequest.LoadScores((result) => { if (result.IsSucceeded) { Debug.Log("Score Load Success"); foreach (var score in result.Scores) { Debug.Log(score.Value); Debug.Log(score.Context); Debug.Log(score.Date); Debug.Log(score.Rank); Debug.Log(score.Player.PlayerID); Debug.Log(score.Player.DisplayName); Debug.Log(score.Player.Alias); } Debug.Log(leaderboardRequest.MaxRange); Debug.Log(leaderboardRequest.LocalPlayerScore.Value); Debug.Log(leaderboardRequest.LocalPlayerScore.Context); Debug.Log(leaderboardRequest.LocalPlayerScore.Date); Debug.Log(leaderboardRequest.LocalPlayerScore.Rank); } else { Debug.Log("Score Load failed! Code: " + result.Error.Code + " Message: " + result.Error.Message); } }); ISN_GKLeaderboard.LoadLeaderboards((result) => { if (result.IsSucceeded) { foreach (var leaderboards in result.Leaderboards) { Debug.Log(leaderboards.Identifier); Debug.Log(leaderboards.GroupIdentifier); Debug.Log(leaderboards.Title); } } else { Debug.Log("Load Leaderboards failed! Code: " + result.Error.Code + " Message: " + result.Error.Message); } }); /* * * ISN_GKAchievement achievement = new ISN_GKAchievement("itunes.achievement.id"); * achievement.PercentComplete = 50.0f; * achievement.Report((result) => { * if(result.IsSucceeded) { * Debug.Log("Achievement reported"); * } else { * Debug.Log("Achievement report failed! Code: " + result.Error.Code + " Message: " + result.Error.Message); * } * }); * * * ISN_GKAchievement achievement1 = new ISN_GKAchievement("itunes.achievement.id.1"); * achievement.PercentComplete = 50.0f; * * ISN_GKAchievement achievement2 = new ISN_GKAchievement("itunes.achievement.id.2"); * achievement.PercentComplete = 70.0f; * * var achievements = new List<ISN_GKAchievement>() { achievement1, achievement2 }; * * ISN_GKAchievement.ReportAchievements(achievements, (result) => { * if (result.IsSucceeded) { * Debug.Log("Achievements reported"); * } else { * Debug.Log("Achievements report failed! Code: " + result.Error.Code + " Message: " + result.Error.Message); * } * }); */ }
private void OnGUI() { //ISN_GKLocalPlayer info if (GUI.Button(new Rect(0, 0, 250, 50), "Authenticate")) { ISN_GKLocalPlayer.Authenticate((SA_Result result) => { if (result.IsSucceeded) { Debug.Log("Authenticate is succeeded!"); ISN_GKLocalPlayer player = ISN_GKLocalPlayer.LocalPlayer; Debug.Log(player.PlayerID); Debug.Log(player.Alias); Debug.Log(player.DisplayName); Debug.Log(player.Authenticated); Debug.Log(player.Underage); player.GenerateIdentityVerificationSignatureWithCompletionHandler((signatureResult) => { if (signatureResult.IsSucceeded) { Debug.Log("signatureResult.PublicKeyUrl: " + signatureResult.PublicKeyUrl); Debug.Log("signatureResult.Timestamp: " + signatureResult.Timestamp); Debug.Log("signatureResult.Salt.Length: " + signatureResult.Salt.Length); Debug.Log("signatureResult.Signature.Length: " + signatureResult.Signature.Length); } else { Debug.Log("IdentityVerificationSignature has failed: " + signatureResult.Error.FullMessage); } }); } else { Debug.Log("Authenticate is failed! Error with code: " + result.Error.Code + " and description: " + result.Error.Message); } }); } if (GUI.Button(new Rect(250, 0, 250, 50), "Get GKLocalPlayer")) { ISN_GKLocalPlayer localPlayer = ISN_GKLocalPlayer.LocalPlayer; Debug.Log("PlayerID: " + localPlayer.PlayerID + " | Alias: " + localPlayer.Alias + " | DisplayName: " + localPlayer.DisplayName); } if (GUI.Button(new Rect(0, 50, 250, 50), "Is Authenticated?")) { Debug.Log(ISN_GKLocalPlayer.LocalPlayer.Authenticated); } if (GUI.Button(new Rect(250, 50, 250, 50), "Is Underage?")) { Debug.Log(ISN_GKLocalPlayer.LocalPlayer.Underage); } if (GUI.Button(new Rect(0, 200, 250, 50), "Fetch saved games")) { ISN_GKLocalPlayer.FetchSavedGames((ISN_GKSavedGameFetchResult result) => { if (result.IsSucceeded) { Debug.Log("Loaded " + result.SavedGames.Count + " saved games"); foreach (ISN_GKSavedGame game in result.SavedGames) { Debug.Log(game.Name); Debug.Log(game.DeviceName); Debug.Log(game.ModificationDate); } } else { Debug.Log("Fetching saved games is failed! " + "With: " + result.Error.Code + " and description: " + result.Error.Message); } }); } if (GUI.Button(new Rect(250, 200, 250, 50), "Save a game")) { byte[] data = Encoding.UTF8.GetBytes("data A"); Debug.Log("Sends byte array length " + data.Length); ISN_GKLocalPlayer.SavedGame("file_name", data, (ISN_GKSavedGameSaveResult result) => { if (result.IsSucceeded) { Debug.Log(result.SavedGame.Name); Debug.Log(result.SavedGame.DeviceName); Debug.Log(result.SavedGame.ModificationDate); } else { Debug.Log("SavedGame is failed! With: " + result.Error.Code + " and description: " + result.Error.Message); } }); } if (GUI.Button(new Rect(0, 250, 250, 50), "Save a game 2")) { byte[] data = Encoding.UTF8.GetBytes("data AAA"); Debug.Log("Sends byte array length " + data.Length); ISN_GKLocalPlayer.SavedGame("new_file_name", data, (ISN_GKSavedGameSaveResult result) => { if (result.IsSucceeded) { Debug.Log("SavedGame is succeeded! Device name = " + result.SavedGame.DeviceName + " | game name = " + result.SavedGame.Name + " | modification Date = " + result.SavedGame.ModificationDate.ToString()); } else { Debug.Log("SavedGame is failed! With: " + result.Error.Code + " and description: " + result.Error.Message); } }); } if (GUI.Button(new Rect(250, 250, 250, 50), "Delete a game")) { ISN_GKLocalPlayer.DeleteSavedGame(m_fetchedSavedGames[0], (SA_Result result) => { if (result.IsSucceeded) { Debug.Log("DeleteSavedGame is succeeded!"); } else { Debug.Log("DeleteSavedGame is failed! Error with code: " + result.Error.Code + " and description: " + result.Error.Message); } }); } if (GUI.Button(new Rect(0, 300, 250, 50), "Load saved game data")) { ISN_GKLocalPlayer.LoadGameData(m_fetchedSavedGames[0], (ISN_GKSavedGameLoadResult result) => { if (result.IsSucceeded) { Debug.Log("Loading game data is succeeded! " + "StringData = " + result.StringData + " " + "byte array length " + result.BytesArrayData.Length); } else { Debug.Log("Loading game data is failed! Error with code: " + result.Error.Code + " and description: " + result.Error.Message); } }); } if (GUI.Button(new Rect(250, 300, 250, 50), "Resolve Saved Games Conflicts")) { //Choose correct data byte[] data = Encoding.UTF8.GetBytes("data AAA"); Debug.Log("Sends byte array length " + data.Length); ISN_GKLocalPlayer.ResolveConflictingSavedGames(m_conflictedSavedGames, data, (ISN_GKSavedGameFetchResult result) => { if (result.IsSucceeded) { Debug.Log("Resolve Conflicted Saved Games is succeeded!"); } else { Debug.Log("Resolve Conflicted Saved Games is failed!"); } }); } /* * if (GUI.Button(new Rect(0, 500, 250, 50), "Show")) { * ISN_GKGameCenterViewController gKGameCenterViewController = new ISN_GKGameCenterViewController(); * gKGameCenterViewController.LeaderboardIdentifier = "my_first_leaderboard"; * gKGameCenterViewController.LeaderboardTimeScope = ISN_GKLeaderboardTimeScope.AllTime; * gKGameCenterViewController.ViewState = ISN_GKGameCenterViewControllerState.Leaderboards; * * ISN_GKGameCenterViewController.Show(JsonUtility.ToJson(gKGameCenterViewController)); * } * */ if (GUI.Button(new Rect(0, 400, 250, 50), "Load Achivemnets")) { ISN_GKAchievement.LoadAchievements((result) => { if (result.IsSucceeded) { Debug.Log("Loaded: " + result.Achievements.Count + " Achievements"); // m_achivemnets = result.Achievements; } else { Debug.Log("LoadAchievements failed! With: " + result.Error.Code + " and description: " + result.Error.Message); } }); } if (GUI.Button(new Rect(250, 400, 250, 50), "Reset Achivemnets")) { ISN_GKAchievement.ResetAchievements((result) => { if (result.IsSucceeded) { Debug.Log("ResetAchievements succeeded"); } else { Debug.Log("LoadAchievements failed! With: " + result.Error.Code + " and description: " + result.Error.Message); } }); } if (GUI.Button(new Rect(0, 450, 250, 50), "Report Achievements")) { ISN_GKAchievement achievement1 = new ISN_GKAchievement("my_first_achievement"); achievement1.PercentComplete = 50.0f; achievement1.Report((result) => { if (result.IsSucceeded) { Debug.Log("ReportAchievements succeeded"); } else { Debug.Log("LoadAchievements failed! With: " + result.Error.Code + " and description: " + result.Error.Message); } }); } if (GUI.Button(new Rect(250, 450, 250, 50), "SHOW Achievements UI")) { ISN_GKGameCenterViewController viewController = new ISN_GKGameCenterViewController(); viewController.ViewState = ISN_GKGameCenterViewControllerState.Achievements; viewController.Show(); } if (GUI.Button(new Rect(0, 500, 250, 50), "SHOW Leaderboards ")) { ISN_GKGameCenterViewController viewController = new ISN_GKGameCenterViewController(); viewController.ViewState = ISN_GKGameCenterViewControllerState.Leaderboards; viewController.Show(); } if (GUI.Button(new Rect(250, 500, 250, 50), "SHOW Challenges ")) { ISN_GKGameCenterViewController viewController = new ISN_GKGameCenterViewController(); viewController.ViewState = ISN_GKGameCenterViewControllerState.Challenges; viewController.Show(() => { Debug.Log("Challenges hideed"); }); } }
private static void DrawAchievementContent(ISN_GKAchievement achievement) { achievement.Identifier = SA_EditorGUILayout.TextField(AchievementIdDLabel, achievement.Identifier); achievement.Name = SA_EditorGUILayout.TextField(AchievementNameLabel, achievement.Name); }
private static string GetAchievementDisplayName(ISN_GKAchievement achievement) { return(achievement.Name + "(" + achievement.Identifier + ")"); }