private void secondColumnButtions() { GUILayout.Label("Leaderboards"); if (GUILayout.Button("Show Leaderboard")) { PlayGameServices.showLeaderboard("CgkI_-mLmdQEEAIQBQ", GPGLeaderboardTimeScope.AllTime); } if (GUILayout.Button("Show All Leaderboards")) { PlayGameServices.showLeaderboards(); } if (GUILayout.Button("Submit Score")) { PlayGameServices.submitScore("CgkI_-mLmdQEEAIQBQ", 567); } if (GUILayout.Button("Load Raw Score Data")) { PlayGameServices.loadScoresForLeaderboard("CgkI_-mLmdQEEAIQBQ", GPGLeaderboardTimeScope.AllTime, false, false); } if (GUILayout.Button("Get Leaderboard Metadata")) { var info = PlayGameServices.getAllLeaderboardMetadata(); Prime31.Utils.logObject(info); } if (GUILayout.Button("Get Achievement Metadata")) { var info = PlayGameServices.getAllAchievementMetadata(); Prime31.Utils.logObject(info); } if (GUILayout.Button("Reload All Metadata")) { PlayGameServices.reloadAchievementAndLeaderboardData(); } }
private static void OnAchievementsLoaded(string key) { if (key != "GPGModelAllAchievementMetadataKey") // The return data are all Play Games data returned, we only check for achievement { return; } if (!instanceExists) { return; } if (instance.debugMode) { Debug.Log("AchievementManager:OnAchievementsLoaded()"); } List <GPGAchievementMetadata> achievementMetadatas = PlayGameServices.getAllAchievementMetadata(); if (instance.debugMode) { Debug.LogFormat("AchievementManager:OnAchievementsLoaded - achievementMetadatas.Count={0}:", achievementMetadatas.Count); DebugUtils.Log(achievementMetadatas); } // Sync online achievement progress to local (new install but old progress), or local to online (offline progress) foreach (GPGAchievementMetadata achievementMetadata in achievementMetadatas) { foreach (AchievementGroupInfo groupInfo in instance.achievementGroupInfos) { for (int i = 0, imax = groupInfo.achievementInfos.Length; i < imax; i++) // Loop throught all achievements pre-set { AchievementInfo info = groupInfo.achievementInfos[i]; if (achievementMetadata.achievementId == info.androidId) { if (groupInfo.isIncrement) // Increment achievement { if (groupInfo.currentCompleted > achievementMetadata.completedSteps) { PlayGameServices.incrementAchievement(info.androidId, groupInfo.currentCompleted - achievementMetadata.completedSteps); } else if (groupInfo.currentCompleted < achievementMetadata.completedSteps) { groupInfo.currentCompleted = achievementMetadata.completedSteps; } } else // Simple achievement { if (groupInfo.currentCompleted > info.requirement) // Unlock if cached high score larger than the requirement { PlayGameServices.unlockAchievement(info.androidId); } } } } } } }