Пример #1
0
    public void IncrementAchievement(UM_Achievement achievement, float percentages)
    {
        switch (Application.platform)
        {
        case RuntimePlatform.IPhonePlayer:
            GameCenterManager.SubmitAchievement(percentages, achievement.IOSId);
            break;

        case RuntimePlatform.Android:

            GPAchievement a = GooglePlayManager.instance.GetAchievement(achievement.AndroidId);
            if (a != null)
            {
                if (a.type == GPAchievementType.TYPE_INCREMENTAL)
                {
                    int steps = Mathf.CeilToInt((a.totalSteps / 100f) * percentages);
                    GooglePlayManager.instance.IncrementAchievementById(achievement.AndroidId, steps);
                }
                else
                {
                    GooglePlayManager.instance.UnlockAchievementById(achievement.AndroidId);
                }
            }
            break;
        }
    }
    public void IncrementAchievement(UM_Achievement achievement, float percentages)
    {
        switch (Application.platform)
        {
        case RuntimePlatform.IPhonePlayer:
            GameCenterManager.SubmitAchievement(percentages, achievement.IOSId);
            break;

        case RuntimePlatform.Android:

            if (UltimateMobileSettings.Instance.PlatformEngine == UM_PlatformDependencies.Amazon)
            {
                SA_AmazonGameCircleManager.Instance.UpdateAchievementProgress(achievement.AmazonId, percentages);
            }
            else
            {
                GPAchievement a = GooglePlayManager.Instance.GetAchievement(achievement.AndroidId);
                if (a != null)
                {
                    if (a.Type == GPAchievementType.TYPE_INCREMENTAL)
                    {
                        int steps = Mathf.CeilToInt(((float)a.TotalSteps / 100f) * percentages);
                        GooglePlayManager.Instance.IncrementAchievementById(achievement.AndroidId, steps);
                    }
                    else
                    {
                        GooglePlayManager.Instance.UnlockAchievementById(achievement.AndroidId);
                    }
                }
            }
            break;
        }
    }
Пример #3
0
    public int GetAchievementProgressInSteps(UM_Achievement achievement)
    {
        if (achievement == null)
        {
            Debug.LogError("Achievement is null. No progress can be retrieved.");
            return(0);
        }

        switch (Application.platform)
        {
        case RuntimePlatform.IPhonePlayer:
            float percentage = GameCenterManager.GetAchievementProgress(achievement.IOSId);
            return(Mathf.CeilToInt(((float)achievement.Steps / 100f) * percentage));

        case RuntimePlatform.Android:
            GPAchievement a = GooglePlayManager.Instance.GetAchievement(achievement.AndroidId);
            if (a != null)
            {
                if (a.Type == GPAchievementType.TYPE_INCREMENTAL)
                {
                    return(a.CurrentSteps);
                }
                else
                {
                    return((a.State == GPAchievementState.STATE_UNLOCKED) ? 1 : 0);
                }
            }
            break;
        }

        return(0);
    }
Пример #4
0
    public void IncrementAchievementByCurrentSteps(UM_Achievement achievement, int steps)
    {
        switch (Application.platform)
        {
        case RuntimePlatform.IPhonePlayer: {
            float percentage = ((float)steps / (float)achievement.Steps) * 100f;
            GameCenterManager.SubmitAchievement(percentage, achievement.IOSId);
            break;
        }

        case RuntimePlatform.Android: {
            GPAchievement a = GooglePlayManager.Instance.GetAchievement(achievement.AndroidId);
            if (a != null)
            {
                if (a.Type == GPAchievementType.TYPE_INCREMENTAL)
                {
                    GooglePlayManager.Instance.IncrementAchievementById(a.Id, steps - a.CurrentSteps);
                }
                else
                {
                    GooglePlayManager.Instance.UnlockAchievementById(a.Id);
                }
            }

            break;
        }
        }
    }
Пример #5
0
 public void RevealAchievement(UM_Achievement achievement)
 {
     switch (Application.platform)
     {
     case RuntimePlatform.Android:
         GooglePlayManager.instance.RevealAchievementById(achievement.AndroidId);
         break;
     }
 }
    public void UnlockAchievement(string id)
    {
        UM_Achievement achievement = UltimateMobileSettings.Instance.GetAchievementById(id);

        if (achievement == null)
        {
            Debug.LogError("Achievment not found with id: " + id);
            return;
        }

        UnlockAchievement(achievement);
    }
    public void IncrementAchievement(string id, float percentages)
    {
        UM_Achievement achievement = UltimateMobileSettings.Instance.GetAchievementById(id);

        if (achievement == null)
        {
            Debug.LogError("Achievment not found with id: " + id);
            return;
        }

        IncrementAchievement(achievement, percentages);
    }
    public void IncrementAchievementByCurrentSteps(string id, int steps)
    {
        UM_Achievement achievement = UltimateMobileSettings.Instance.GetAchievementById(id);

        if (achievement == null)
        {
            Debug.LogError("Achievement not found with id: " + id);
            return;
        }

        IncrementAchievementByCurrentSteps(achievement, steps);
    }
    public int GetAchievementProgressInSteps(string id)
    {
        UM_Achievement achievement = UltimateMobileSettings.Instance.GetAchievementById(id);

        if (achievement == null)
        {
            Debug.LogError("Achievement not found with id: " + id);
            return(0);
        }

        return(GetAchievementProgressInSteps(achievement));
    }
Пример #10
0
    private void UnlockAchievement(UM_Achievement achievement)
    {
        switch (Application.platform)
        {
        case RuntimePlatform.IPhonePlayer:
            GameCenterManager.SubmitAchievement(100f, achievement.IOSId);
            break;

        case RuntimePlatform.Android:
            GooglePlayManager.instance.UnlockAchievementById(achievement.AndroidId);
            break;
        }
    }
    public float GetAchievementProgress(UM_Achievement achievement)
    {
        if (achievement == null)
        {
            return(0f);
        }

        switch (Application.platform)
        {
        case RuntimePlatform.IPhonePlayer:
            return(GameCenterManager.GetAchievementProgress(achievement.IOSId));

        case RuntimePlatform.Android:
            if (UltimateMobileSettings.Instance.PlatformEngine == UM_PlatformDependencies.Amazon)
            {
                GC_Achievement ach = SA_AmazonGameCircleManager.Instance.GetAchievement(achievement.AmazonId);
                if (ach != null)
                {
                    return(ach.Progress);
                }
            }
            else
            {
                GPAchievement a = GooglePlayManager.Instance.GetAchievement(achievement.AndroidId);
                if (a != null)
                {
                    if (a.Type == GPAchievementType.TYPE_INCREMENTAL)
                    {
                        return(((float)a.CurrentSteps / a.TotalSteps) * 100f);
                    }
                    else
                    {
                        if (a.State == GPAchievementState.STATE_UNLOCKED)
                        {
                            return(100f);
                        }
                        else
                        {
                            return(0f);
                        }
                    }
                }
            }
            break;
        }

        return(0f);
    }
 public void RevealAchievement(UM_Achievement achievement)
 {
     switch (Application.platform)
     {
     case RuntimePlatform.Android:
         if (UltimateMobileSettings.Instance.PlatformEngine == UM_PlatformDependencies.Amazon)
         {
             //Just do nothing for Amazon
         }
         else
         {
             GooglePlayManager.Instance.RevealAchievementById(achievement.AndroidId);
         }
         break;
     }
 }
    public int GetAchievementProgressInSteps(UM_Achievement achievement)
    {
        if (achievement == null)
        {
            Debug.LogError("Achievement is null. No progress can be retrieved.");
            return(0);
        }

        switch (Application.platform)
        {
        case RuntimePlatform.IPhonePlayer:
            float percentage = GameCenterManager.GetAchievementProgress(achievement.IOSId);
            return(Mathf.CeilToInt(((float)achievement.Steps / 100f) * percentage));

        case RuntimePlatform.Android:
            if (UltimateMobileSettings.Instance.PlatformEngine == UM_PlatformDependencies.Amazon)
            {
                GC_Achievement ac = SA_AmazonGameCircleManager.Instance.GetAchievement(achievement.AmazonId);
                if (ac != null)
                {
                    return(Mathf.CeilToInt(((float)achievement.Steps / 100f) * ac.Progress));
                }
            }
            else
            {
                GPAchievement a = GooglePlayManager.Instance.GetAchievement(achievement.AndroidId);
                if (a != null)
                {
                    if (a.Type == GPAchievementType.TYPE_INCREMENTAL)
                    {
                        return(a.CurrentSteps);
                    }
                    else
                    {
                        return((a.State == GPAchievementState.STATE_UNLOCKED) ? 1 : 0);
                    }
                }
            }
            break;
        }

        return(0);
    }
    private void UnlockAchievement(UM_Achievement achievement)
    {
        switch (Application.platform)
        {
        case RuntimePlatform.IPhonePlayer:
            GameCenterManager.SubmitAchievement(100f, achievement.IOSId);
            break;

        case RuntimePlatform.Android:
            if (UltimateMobileSettings.Instance.PlatformEngine == UM_PlatformDependencies.Amazon)
            {
                SA_AmazonGameCircleManager.Instance.UpdateAchievementProgress(achievement.AmazonId, 100.0f);
            }
            else
            {
                GooglePlayManager.Instance.UnlockAchievementById(achievement.AndroidId);
            }
            break;
        }
    }
Пример #15
0
    public float GetAchievementProgress(UM_Achievement achievement)
    {
        if (achievement == null)
        {
            return(0f);
        }

        switch (Application.platform)
        {
        case RuntimePlatform.IPhonePlayer:
            return(GameCenterManager.GetAchievementProgress(achievement.IOSId));

        case RuntimePlatform.Android:

            GPAchievement a = GooglePlayManager.instance.GetAchievement(achievement.AndroidId);
            if (a != null)
            {
                if (a.type == GPAchievementType.TYPE_INCREMENTAL)
                {
                    return((a.currentSteps / a.totalSteps) * 100f);
                }
                else
                {
                    if (a.state == GPAchievementState.STATE_UNLOCKED)
                    {
                        return(100f);
                    }
                    else
                    {
                        return(0f);
                    }
                }
            }
            break;
        }

        return(0f);
    }
    public void IncrementAchievementByCurrentSteps(UM_Achievement achievement, int steps)
    {
        switch (Application.platform)
        {
        case RuntimePlatform.IPhonePlayer: {
            float percentage = ((float)steps / (float)achievement.Steps) * 100f;
            GameCenterManager.SubmitAchievement(percentage, achievement.IOSId);
            break;
        }

        case RuntimePlatform.Android: {
            if (UltimateMobileSettings.Instance.PlatformEngine == UM_PlatformDependencies.Amazon)
            {
                float percentage = ((float)steps / (float)achievement.Steps) * 100f;
                SA_AmazonGameCircleManager.Instance.UpdateAchievementProgress(achievement.AmazonId, percentage);
            }
            else
            {
                GPAchievement a = GooglePlayManager.Instance.GetAchievement(achievement.AndroidId);
                if (a != null)
                {
                    if (a.Type == GPAchievementType.TYPE_INCREMENTAL)
                    {
                        GooglePlayManager.Instance.IncrementAchievementById(a.Id, steps - a.CurrentSteps);
                    }
                    else
                    {
                        GooglePlayManager.Instance.UnlockAchievementById(a.Id);
                    }
                }
            }

            break;
        }
        }
    }
	//--------------------------------------
	// Achievements
	//--------------------------------------


	public void AddAchievement(UM_Achievement a) {
		Achievements.Add(a);
	}
	public void RemoveAchievement(UM_Achievement a) {
		Achievements.Remove(a);
	}
Пример #19
0
    private void GameServiceSettings()
    {
        EditorGUI.indentLevel = 0;
        settings.IsGameServiceOpen = EditorGUILayout.Foldout(settings.IsGameServiceOpen, "Game Service");
        if(settings.IsGameServiceOpen) {
            EditorGUI.indentLevel++; {

                Dictionary<string, string> resources = new Dictionary<string, string>();
                if (FileStaticAPI.IsFileExists ("Plugins/Android/AN_Res/res/values/ids.xml")) {
                    //Parse XML file with PlayService Settings ID's
                    XmlDocument doc = new XmlDocument();
                    doc.Load(Application.dataPath + "/Plugins/Android/AN_Res/res/values/ids.xml");

                    XmlNode rootResourcesNode = doc.DocumentElement;
                    foreach(XmlNode chn in rootResourcesNode.ChildNodes) {
                        if (chn.Name.Equals("string")) {
                            if (chn.Attributes["name"] != null) {
                                if (!chn.Attributes["name"].Value.Equals("app_id")) {
                                    resources.Add(chn.Attributes["name"].Value, chn.InnerText);
                                }
                            }
                        }
                    }
                }

                settings.IsLeaderBoardsOpen = EditorGUILayout.Foldout(settings.IsLeaderBoardsOpen, "Leaderboards");
                if(settings.IsLeaderBoardsOpen) {
                    if(settings.Leaderboards.Count == 0) {
                        EditorGUILayout.HelpBox("No Leaderboards Added", MessageType.Warning);
                    }
                    foreach(UM_Leaderboard leaderbaord in settings.Leaderboards) {
                        GPLeaderBoard gpLb = GetAndroidLeaderboard(leaderbaord.AndroidId);
                        GK_Leaderboard gkLb = GetIOSLeaderboard(leaderbaord.IOSId);

                        EditorGUILayout.BeginVertical (GUI.skin.box);
                        EditorGUILayout.BeginHorizontal();

                        GUIStyle s =  new GUIStyle();
                        s.padding =  new RectOffset();
                        s.margin =  new RectOffset();
                        s.border =  new RectOffset();

                        if(leaderbaord.Texture != null) {
                            GUILayout.Box(leaderbaord.Texture, s, new GUILayoutOption[]{GUILayout.Width(18), GUILayout.Height(18)});
                        }

                        leaderbaord.IsOpen = EditorGUILayout.Foldout(leaderbaord.IsOpen, leaderbaord.id);
                        bool ItemWasRemoved = DrawSortingButtons((object) leaderbaord, settings.Leaderboards,
                                                                 (object) gpLb, AndroidNativeSettings.Instance.Leaderboards,
                                                                 (object) gkLb, IOSNativeSettings.Instance.Leaderboards);
                        if(ItemWasRemoved) {
                            return;
                        }
                        EditorGUILayout.EndHorizontal();

                        if(leaderbaord.IsOpen) {
                            EditorGUI.indentLevel++; {

                                EditorGUILayout.BeginHorizontal();
                                EditorGUILayout.LabelField(LID);
                                leaderbaord.id	 	= EditorGUILayout.TextField(leaderbaord.id);
                                if(leaderbaord.id.Length > 0) {
                                    leaderbaord.id		= leaderbaord.id.Trim();
                                }
                                gkLb.Info.Title = leaderbaord.id;
                                gpLb.Name = leaderbaord.id;
                                EditorGUILayout.EndHorizontal();

                                EditorGUILayout.BeginHorizontal();
                                EditorGUILayout.LabelField(IOSLID);
                                leaderbaord.IOSId	 	= EditorGUILayout.TextField(leaderbaord.IOSId);
                                if(leaderbaord.IOSId.Length > 0) {
                                    leaderbaord.IOSId 		= leaderbaord.IOSId.Trim();
                                }
                                EditorGUILayout.EndHorizontal();
                                gkLb.Info.Identifier = leaderbaord.IOSId;

                                EditorGUILayout.BeginHorizontal();
                                EditorGUILayout.LabelField(ANDROIDLID);

                                EditorGUI.BeginChangeCheck();

                                bool doesntMatch = false;
                                bool fileDoesntExists = false;

                                string name = string.Empty;
                                string[] names = new string[resources.Keys.Count + 1];
                                names[0] = "[None]";
                                resources.Keys.CopyTo(names, 1);
                                List<string> listNames = new List<string>(names);
                                if (leaderbaord.AndroidId.Equals(string.Empty)) {
                                    name = names[EditorGUILayout.Popup(0, names)];
                                } else {
                                    if (FileStaticAPI.IsFileExists ("Plugins/Android/AN_Res/res/values/ids.xml")) {
                                        if (resources.ContainsValue(leaderbaord.AndroidId)) {
                                            name = names[EditorGUILayout.Popup(listNames.IndexOf(GetKeyForValue(resources, leaderbaord.AndroidId)), names)];
                                        } else {
                                            doesntMatch = true;
                                            name = names[EditorGUILayout.Popup(0, names)];
                                        }
                                    } else {
                                        fileDoesntExists = true;
                                    }
                                }

                                if (EditorGUI.EndChangeCheck()){
                                    if (!name.Equals("[None]")) {
                                        leaderbaord.AndroidId = resources[name];
                                    }
                                }

                                if(leaderbaord.AndroidId.Length > 0) {
                                    leaderbaord.AndroidId 		= leaderbaord.AndroidId.Trim();
                                }
                                gpLb.Id = leaderbaord.AndroidId;
                                EditorGUILayout.EndHorizontal();

                                EditorGUILayout.BeginHorizontal();
                                if (fileDoesntExists) {
                                    EditorGUILayout.HelpBox("XML file with PlayService ID's DOESN'T exist", MessageType.Warning);
                                }
                                if (doesntMatch) {
                                    EditorGUILayout.HelpBox("Leaderboard ID doesn't match any PlayService ID of ids.xml file", MessageType.Warning);
                                }
                                EditorGUILayout.EndHorizontal();

                                EditorGUILayout.Space();
                                EditorGUILayout.Space();

                                EditorGUILayout.BeginHorizontal();
                                EditorGUILayout.LabelField(LeaderboardDescriptionLabel);
                                EditorGUILayout.EndHorizontal();

                                EditorGUILayout.BeginHorizontal();
                                leaderbaord.Description	 = EditorGUILayout.TextArea(leaderbaord.Description,  new GUILayoutOption[]{GUILayout.Height(60), GUILayout.Width(200)} );
                                gkLb.Info.Description = leaderbaord.Description;
                                gpLb.Description = leaderbaord.Description;
                                leaderbaord.Texture = (Texture2D) EditorGUILayout.ObjectField("", leaderbaord.Texture, typeof (Texture2D), false);
                                gkLb.Info.Texture = leaderbaord.Texture;
                                gpLb.Texture = leaderbaord.Texture;
                                EditorGUILayout.EndHorizontal();
                                EditorGUILayout.Space();
                            } EditorGUI.indentLevel--;
                        }
                        EditorGUILayout.EndVertical();
                    }

                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.Space();
                    if(GUILayout.Button("Add new",  GUILayout.Width(80))) {
                        UM_Leaderboard lb = new UM_Leaderboard();

                        int index = 0;
                        do {
                            index++;
                        } while (IsLeaderboardExists(lb.id + index.ToString()));
                        lb.id = lb.id + index.ToString();
                        lb.AndroidId = lb.id;
                        lb.IOSId = lb.id;

                        settings.AddLeaderboard(lb);
                        AndroidNativeSettings.Instance.Leaderboards.Add(new GPLeaderBoard(lb.AndroidId, lb.id));
                        GK_Leaderboard iOSLb = new GK_Leaderboard(lb.IOSId);
                        iOSLb.Info.Title = lb.id;
                        IOSNativeSettings.Instance.Leaderboards.Add(iOSLb);
                    }
                    EditorGUILayout.Space();
                    EditorGUILayout.EndHorizontal();
                    EditorGUILayout.Space();
                }

                settings.IsAchievementsOpen = EditorGUILayout.Foldout(settings.IsAchievementsOpen, "Achievements");
                if(settings.IsAchievementsOpen) {
                    if(settings.Achievements.Count == 0) {
                        EditorGUILayout.HelpBox("No Achievements Added", MessageType.Warning);
                    }

                    foreach(UM_Achievement achievement in settings.Achievements) {
                        GPAchievement gpAch = GetAndroidAchievement(achievement.AndroidId);
                        GK_AchievementTemplate gkAch = GetIOSAchievement(achievement.IOSId);

                        EditorGUILayout.BeginVertical (GUI.skin.box);

                        EditorGUILayout.BeginHorizontal();

                        GUIStyle s =  new GUIStyle();
                        s.padding =  new RectOffset();
                        s.margin =  new RectOffset();
                        s.border =  new RectOffset();

                        if(achievement.Texture != null) {
                            GUILayout.Box(achievement.Texture, s, new GUILayoutOption[]{GUILayout.Width(18), GUILayout.Height(18)});
                        }

                        achievement.IsOpen = EditorGUILayout.Foldout(achievement.IsOpen, achievement.id);
                        bool ItemWasRemoved = DrawSortingButtons((object) achievement, settings.Achievements,
                                                                 (object) gpAch, AndroidNativeSettings.Instance.Achievements,
                                                                 (object) gkAch, IOSNativeSettings.Instance.Achievements);
                        if(ItemWasRemoved) {
                            return;
                        }
                        EditorGUILayout.EndHorizontal();

                        if(achievement.IsOpen) {
                            EditorGUI.indentLevel++; {

                                EditorGUILayout.BeginHorizontal();
                                EditorGUILayout.LabelField(AID);
                                achievement.id	 	= EditorGUILayout.TextField(achievement.id);
                                if(achievement.id.Length > 0) {
                                    achievement.id 		= achievement.id.Trim();
                                }
                                gkAch.Title = achievement.id;
                                gpAch.Name = achievement.id;
                                EditorGUILayout.EndHorizontal();

                                EditorGUILayout.BeginHorizontal();
                                EditorGUILayout.LabelField(ALID);
                                achievement.IOSId	 	= EditorGUILayout.TextField(achievement.IOSId);
                                if(achievement.IOSId.Length > 0) {
                                    achievement.IOSId 		= achievement.IOSId.Trim();
                                }
                                gkAch.Id = achievement.IOSId;
                                EditorGUILayout.EndHorizontal();

                                EditorGUILayout.BeginHorizontal();
                                EditorGUILayout.LabelField(ANDROIDAID);

                                EditorGUI.BeginChangeCheck();

                                bool doesntMatch = false;
                                bool fileDoesntExists = false;

                                string name = string.Empty;
                                string[] names = new string[resources.Keys.Count + 1];
                                names[0] = "[None]";
                                resources.Keys.CopyTo(names, 1);
                                List<string> listNames = new List<string>(names);
                                if (achievement.AndroidId.Equals(string.Empty)) {
                                    name = names[EditorGUILayout.Popup(0, names)];
                                } else {
                                    if (FileStaticAPI.IsFileExists ("Plugins/Android/AN_Res/res/values/ids.xml")) {
                                        if (resources.ContainsValue(achievement.AndroidId)) {
                                            name = names[EditorGUILayout.Popup(listNames.IndexOf(GetKeyForValue(resources, achievement.AndroidId)), names)];
                                        } else {
                                            doesntMatch = true;
                                            name = names[EditorGUILayout.Popup(0, names)];
                                        }
                                    } else {
                                        fileDoesntExists = true;
                                    }
                                }

                                if (EditorGUI.EndChangeCheck()){
                                    if (!name.Equals("[None]")) {
                                        achievement.AndroidId = resources[name];
                                    }
                                }

                                if(achievement.AndroidId.Length > 0) {
                                    achievement.AndroidId 		= achievement.AndroidId.Trim();
                                }
                                gpAch.Id = achievement.AndroidId;
                                EditorGUILayout.EndHorizontal();

                                EditorGUILayout.BeginHorizontal();
                                if (fileDoesntExists) {
                                    EditorGUILayout.HelpBox("XML file with PlayService ID's DOESN'T exist", MessageType.Warning);
                                }
                                if (doesntMatch) {
                                    EditorGUILayout.HelpBox("Achievement ID doesn't match any PlayService ID of ids.xml file", MessageType.Warning);
                                }
                                EditorGUILayout.EndHorizontal();

                                EditorGUILayout.Space();
                                EditorGUILayout.Space();

                                EditorGUILayout.BeginHorizontal();
                                EditorGUILayout.LabelField(AchievementDescriptionLabel);
                                EditorGUILayout.EndHorizontal();

                                EditorGUILayout.BeginHorizontal();
                                achievement.Description	 = EditorGUILayout.TextArea(achievement.Description,  new GUILayoutOption[]{GUILayout.Height(60), GUILayout.Width(200)} );
                                gkAch.Description = achievement.Description;
                                gpAch.Description = achievement.Description;
                                achievement.Texture = (Texture2D) EditorGUILayout.ObjectField("", achievement.Texture, typeof (Texture2D), false);
                                gkAch.Texture = achievement.Texture;
                                gpAch.Texture = achievement.Texture;
                                EditorGUILayout.EndHorizontal();
                                EditorGUILayout.Space();

                            } EditorGUI.indentLevel--;
                        }
                        EditorGUILayout.EndVertical();
                    }

                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.Space();
                    if(GUILayout.Button("Add new",  GUILayout.Width(80))) {
                        UM_Achievement ac = new UM_Achievement();

                        int index = 0;
                        do {
                            index++;
                        } while (IsAchievementExists(ac.id + index.ToString()));
                        ac.id = ac.id + index.ToString();
                        ac.AndroidId = ac.id;
                        ac.IOSId = ac.id;

                        settings.AddAchievement(ac);
                        AndroidNativeSettings.Instance.Achievements.Add(new GPAchievement(ac.AndroidId, ac.id));
                        IOSNativeSettings.Instance.Achievements.Add(new GK_AchievementTemplate(){Id = ac.IOSId, Title = ac.id});
                    }
                    EditorGUILayout.Space();
                    EditorGUILayout.EndHorizontal();
                    EditorGUILayout.Space();
                }
            } EditorGUI.indentLevel--;

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField(AutoLoadBigmagesLoadTitle);
            UltimateMobileSettings.Instance.AutoLoadUsersBigImages = EditorGUILayout.Toggle(UltimateMobileSettings.Instance.AutoLoadUsersBigImages);

            IOSNativeSettings.Instance.AutoLoadUsersBigImages = UltimateMobileSettings.Instance.AutoLoadUsersBigImages;
            AndroidNativeSettings.Instance.LoadProfileImages = UltimateMobileSettings.Instance.AutoLoadUsersBigImages;

            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField(AutoLoadSmallImagesLoadTitle);
            UltimateMobileSettings.Instance.AutoLoadUsersSmallImages = EditorGUILayout.Toggle(UltimateMobileSettings.Instance.AutoLoadUsersSmallImages);

            IOSNativeSettings.Instance.AutoLoadUsersSmallImages = UltimateMobileSettings.Instance.AutoLoadUsersSmallImages;
            AndroidNativeSettings.Instance.LoadProfileIcons = UltimateMobileSettings.Instance.AutoLoadUsersSmallImages;

            EditorGUILayout.EndHorizontal();
        }
    }
    //--------------------------------------
    // Achievements
    //--------------------------------------


    public void AddAchievement(UM_Achievement a)
    {
        Achievements.Add(a);
    }
 public void RemoveAchievement(UM_Achievement a)
 {
     Achievements.Remove(a);
 }
 public void ReportAchievement(UM_Achievement achievement)
 {
     ReportAchievement(achievement);
 }