Пример #1
0
    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();
        }
    }
Пример #2
0
        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);
                                }
                            }
                        }
                    }
                }
            }
        }