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 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); }
void GameCircleSettings() { EditorGUILayout.Space(); EditorGUILayout.HelpBox("Game Circle Configuration", MessageType.None); EditorGUI.BeginChangeCheck(); AmazonNativeSettings.Instance.IsGameCircleEnabled = SA.Common.Editor.Tools.ToggleFiled("Game Circle API", AmazonNativeSettings.Instance.IsGameCircleEnabled); if (EditorGUI.EndChangeCheck()) { UpdatePluginSettings(); } GUI.enabled = AmazonNativeSettings.Instance.IsGameCircleEnabled; EditorGUILayout.Space(); EditorGUILayout.HelpBox("Leaderboards Info", MessageType.None); EditorGUI.indentLevel++; { EditorGUILayout.BeginVertical(GUI.skin.box); EditorGUILayout.BeginHorizontal(); AmazonNativeSettings.Instance.ShowLeaderboards = EditorGUILayout.Foldout(AmazonNativeSettings.Instance.ShowLeaderboards, "Leaderboards"); EditorGUILayout.EndHorizontal(); if (AmazonNativeSettings.Instance.ShowLeaderboards) { EditorGUILayout.Space(); foreach (GC_Leaderboard leaderboard in AmazonNativeSettings.Instance.Leaderboards) { EditorGUILayout.BeginVertical(GUI.skin.box); EditorGUILayout.BeginHorizontal(); if (leaderboard.Texture != null) { GUILayout.Box(leaderboard.Texture, ImageBoxStyle, new GUILayoutOption[] { GUILayout.Width(18), GUILayout.Height(18) }); } leaderboard.IsOpen = EditorGUILayout.Foldout(leaderboard.IsOpen, leaderboard.Title); bool ItemWasRemoved = SA.Common.Editor.Tools.SrotingButtons((object)leaderboard, AmazonNativeSettings.Instance.Leaderboards); if (ItemWasRemoved) { return; } EditorGUILayout.EndHorizontal(); if (leaderboard.IsOpen) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(L_IdDLabel); leaderboard.Identifier = EditorGUILayout.TextField(leaderboard.Identifier); if (leaderboard.Identifier.Length > 0) { leaderboard.Identifier = leaderboard.Identifier.Trim(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(L_DisplayNameLabel); leaderboard.Title = EditorGUILayout.TextField(leaderboard.Title); EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(L_DescriptionLabel); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); leaderboard.Description = EditorGUILayout.TextArea(leaderboard.Description, new GUILayoutOption[] { GUILayout.Height(60), GUILayout.Width(200) }); leaderboard.Texture = (Texture2D)EditorGUILayout.ObjectField("", leaderboard.Texture, typeof(Texture2D), false); EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndVertical(); } EditorGUILayout.BeginHorizontal(); EditorGUILayout.Space(); if (GUILayout.Button("Add new", EditorStyles.miniButton, GUILayout.Width(250))) { GC_Leaderboard lb = new GC_Leaderboard(); AmazonNativeSettings.Instance.Leaderboards.Add(lb); } EditorGUILayout.Space(); EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); } EditorGUILayout.EndVertical(); } EditorGUI.indentLevel--; EditorGUILayout.Space(); EditorGUILayout.HelpBox("Achievements Info", MessageType.None); EditorGUI.indentLevel++; { EditorGUILayout.BeginVertical(GUI.skin.box); EditorGUILayout.BeginHorizontal(); AmazonNativeSettings.Instance.ShowAchievementsParams = EditorGUILayout.Foldout(AmazonNativeSettings.Instance.ShowAchievementsParams, "Achievements"); EditorGUILayout.EndHorizontal(); if (AmazonNativeSettings.Instance.ShowAchievementsParams) { EditorGUILayout.Space(); foreach (GC_Achievement achievement in AmazonNativeSettings.Instance.Achievements) { EditorGUILayout.BeginVertical(GUI.skin.box); EditorGUILayout.BeginHorizontal(); if (achievement.Texture != null) { GUILayout.Box(achievement.Texture, ImageBoxStyle, new GUILayoutOption[] { GUILayout.Width(18), GUILayout.Height(18) }); } achievement.IsOpen = EditorGUILayout.Foldout(achievement.IsOpen, achievement.Title); bool ItemWasRemoved = SA.Common.Editor.Tools.SrotingButtons((object)achievement, AmazonNativeSettings.Instance.Achievements); if (ItemWasRemoved) { return; } EditorGUILayout.EndHorizontal(); if (achievement.IsOpen) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(A_IdDLabel); achievement.Identifier = EditorGUILayout.TextField(achievement.Identifier); if (achievement.Identifier.Length > 0) { achievement.Identifier = achievement.Identifier.Trim(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(A_DisplayNameLabel); achievement.Title = EditorGUILayout.TextField(achievement.Title); EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(A_DescriptionLabel); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); achievement.Description = EditorGUILayout.TextArea(achievement.Description, new GUILayoutOption[] { GUILayout.Height(60), GUILayout.Width(200) }); achievement.Texture = (Texture2D)EditorGUILayout.ObjectField("", achievement.Texture, typeof(Texture2D), false); EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndVertical(); } EditorGUILayout.BeginHorizontal(); EditorGUILayout.Space(); if (GUILayout.Button("Add new", EditorStyles.miniButton, GUILayout.Width(250))) { GC_Achievement achievement = new GC_Achievement(); AmazonNativeSettings.Instance.Achievements.Add(achievement); } EditorGUILayout.Space(); EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); } EditorGUILayout.EndVertical(); } EditorGUI.indentLevel--; GUI.enabled = true; }