/// <summary>
    /// Loads the achievement descriptions.
    /// </summary>
    /// <param name='callback'>
    /// Callback.
    /// </param>
    public void LoadAchievementDescriptions(System.Action <IAchievementDescription[]> callback)
    {
        // The callback argument should not be null for this function.
        if (null == callback)
        {
            AGSClient.LogGameCircleError("LoadAchievementDescriptions \"callback\" argument should not be null");
            return;
        }

        // Transform the passed in callback action to the type of callback the GameCircle plugin expects.
        AGSAchievementsClient.RequestAchievementsFailedEvent    += (e) => { callback(null); };
        AGSAchievementsClient.RequestAchievementsSucceededEvent += (achievements) => {
            AGSSocialAchievementDescription [] descriptions = new AGSSocialAchievementDescription[achievements.Count];
            for (int achievementIndex = 0; achievementIndex < achievements.Count; achievementIndex++)
            {
                descriptions[achievementIndex] = new AGSSocialAchievementDescription(achievements[achievementIndex]);
            }
            callback(descriptions);
        };
        AGSAchievementsClient.RequestAchievements();
    }
    /// <summary>
    /// Loads the achievement descriptions.
    /// </summary>
    /// <param name='callback'>
    /// Callback.
    /// </param>
    public void LoadAchievementDescriptions(System.Action<IAchievementDescription[]> callback)
    {
        // The callback argument should not be null for this function.
        if(null == callback) {
            AGSClient.LogGameCircleError("LoadAchievementDescriptions \"callback\" argument should not be null");
            return;
        }

        // Transform the passed in callback action to the type of callback the GameCircle plugin expects.
        AGSAchievementsClient.RequestAchievementsFailedEvent += (e) => { callback(null); };
        AGSAchievementsClient.RequestAchievementsSucceededEvent += (achievements) => {
            AGSSocialAchievementDescription [] descriptions = new AGSSocialAchievementDescription[achievements.Count];
            for(int achievementIndex = 0; achievementIndex < achievements.Count; achievementIndex++) {
                descriptions[achievementIndex] = new AGSSocialAchievementDescription(achievements[achievementIndex]);
            }
            callback(descriptions);
        };
        AGSAchievementsClient.RequestAchievements();
    }