IEnumerator LoadThisYear() { isLoading = true; isLoadingSuccessed = false; GooglePlayManager.Instance.LoadTopScores(readerboadID_Rank1[0], GPBoardTimeSpan.ALL_TIME, GPCollectionType.GLOBAL, 1); while (isLoading) { yield return(null); } if (isLoadingSuccessed) { loadedLeaderBoad = GooglePlayManager.Instance.GetLeaderBoard(readerboadID_Rank1[0]); if (loadedLeaderBoad == null) { OnIsThisYearFinished(false, ""); yield break; } } else { OnIsThisYearFinished(false, ""); yield break; } yield return(null); OnIsThisYearFinished(true, loadedLeaderBoad.Name); }
private void OnScoreSubmitted(string data) { Debug.Log("OnScoreSubmitted " + data); if (data.Equals(string.Empty)) { Debug.Log("GooglePlayManager OnScoreSubmitted, no data avaiable"); return; } string[] storeData; storeData = data.Split(AndroidNative.DATA_SPLITTER [0]); GPLeaderBoard lb = GetLeaderBoard(storeData [1]); GP_LeaderboardResult result = new GP_LeaderboardResult(lb, storeData [0]); if (result.IsSucceeded) { Debug.Log("Score was submitted to leaderboard -> " + lb); UpdatePlayerScoreLocal(lb); } else { ActionScoreSubmited(result); } }
public long GetCurrentPlayerScore(UM_Leaderboard leaderboard) { switch (Application.platform) { case RuntimePlatform.IPhonePlayer: GCLeaderboard board = GameCenterManager.GetLeaderboard(leaderboard.IOSId); if (board != null) { GCScore score = board.GetCurrentPlayerScore(GCBoardTimeSpan.ALL_TIME, GCCollectionType.GLOBAL); if (score != null) { return(score.GetLongScore()); } } break; case RuntimePlatform.Android: GPLeaderBoard gBoard = GooglePlayManager.instance.GetLeaderBoard(leaderboard.AndroidId); if (gBoard != null) { GPScore score = gBoard.GetCurrentPlayerScore(GPBoardTimeSpan.ALL_TIME, GPCollectionType.GLOBAL); if (score != null) { return(score.score); } } break; } return(0); }
public int GetCurrentPlayerRank(UM_Leaderboard leaderboard) { switch (Application.platform) { case RuntimePlatform.IPhonePlayer: GCLeaderboard board = GameCenterManager.GetLeaderboard(leaderboard.IOSId); if (board != null) { return(board.GetCurrentPlayerScore(GCBoardTimeSpan.ALL_TIME, GCCollectionType.GLOBAL).rank); } else { return(0); } case RuntimePlatform.Android: GPLeaderBoard gBoard = GooglePlayManager.instance.GetLeaderBoard(leaderboard.AndroidId); if (gBoard != null) { return(gBoard.GetCurrentPlayerScore(GPBoardTimeSpan.ALL_TIME, GPCollectionType.GLOBAL).rank); } else { return(0); } } return(0); }
private void ActionScoreRequestReceived(GooglePlayResult obj) { SA_StatusBar.text = "Scores Load Finished"; loadedLeaderBoard = GooglePlayManager.instance.GetLeaderBoard(LEADERBOARD_ID); if (loadedLeaderBoard == null) { Debug.Log("No Leaderboard found"); return; } List <GPScore> scoresLB = loadedLeaderBoard.GetScoresList(GPBoardTimeSpan.ALL_TIME, GPCollectionType.GLOBAL); foreach (GPScore score in scoresLB) { Debug.Log("OnScoreUpdated " + score.rank + " " + score.playerId + " " + score.score); } GPScore currentPlayerScore = loadedLeaderBoard.GetCurrentPlayerScore(displayTime, displayCollection); Debug.Log("currentPlayerScore: " + currentPlayerScore.score + " rank:" + currentPlayerScore.rank); UpdateScoresDisaplay(); }
//-------------------------------------- // EVENTS //-------------------------------------- private void OnScoreListLoaded() { SA_StatusBar.text = "Scores Load Finished"; loadedLeaderBoard = GooglePlayManager.instance.GetLeaderBoard(LEADERBOARD_ID); }
public void UpdatePlayerScoreLocal(GPLeaderBoard leaderboard) { if (!GooglePlayConnection.CheckState()) { return; } int requestId = SA_IdFactory.NextId; leaderboard.CreateScoreListener(requestId); AN_GMSGeneralProxy.loadLeaderboardInfoLocal(leaderboard.Id, requestId); }
IEnumerator LoadCurrentRank(string ID, bool isFriend) { isLoading = true; isLoadingSuccessed = false; if (isFriend) { GooglePlayManager.Instance.LoadTopScores(ID, GPBoardTimeSpan.ALL_TIME, GPCollectionType.FRIENDS, howManyRankToLoad); } else { GooglePlayManager.Instance.LoadTopScores(ID, GPBoardTimeSpan.ALL_TIME, GPCollectionType.GLOBAL, howManyRankToLoad); } while (isLoading) { yield return(null); } if (isLoadingSuccessed) { loadedLeaderBoad = GooglePlayManager.Instance.GetLeaderBoard(ID); if (loadedLeaderBoad == null) { OnLoadReaderBoadFinished(false, "ロード完了したが、GETできない場合", null); yield break; } } else { OnLoadReaderBoadFinished(false, "ロードに失敗した場合", null); yield break; } yield return(null); List <GPScore> scoresLB; if (isFriend) { scoresLB = loadedLeaderBoad.GetScoresList(GPBoardTimeSpan.ALL_TIME, GPCollectionType.FRIENDS); } else { scoresLB = loadedLeaderBoad.GetScoresList(GPBoardTimeSpan.ALL_TIME, GPCollectionType.GLOBAL); } if (scoresLB == null) { OnLoadReaderBoadFinished(false, "ロード完了 GETできたが スコアリストがnullの場合", null); yield break; } yield return(null); OnLoadReaderBoadFinished(true, "ロード正常終了", GetLeaderBoadData(scoresLB)); }
private void OnLeaderboardDataLoaded(string data) { Debug.Log("OnLeaderboardDataLoaded " + data); string[] storeData; storeData = data.Split(AndroidNative.DATA_SPLITTER [0]); GooglePlayResult result = new GooglePlayResult(storeData [0]); if (result.IsSucceeded) { for (int i = 1; i < storeData.Length; i += 32) { if (storeData[i] == AndroidNative.DATA_EOF) { break; } string leaderboardId = storeData[i]; string leaderboardName = storeData [i + 1]; GPLeaderBoard lb = GetLeaderBoard(leaderboardId); lb.UpdateName(leaderboardName); int start = i + 2; for (int j = 0; j < 6; j++) { long score = System.Convert.ToInt64(storeData[start]); int rank = System.Convert.ToInt32(storeData[start + 1]); GPBoardTimeSpan timeSpan = (GPBoardTimeSpan)System.Convert.ToInt32(storeData[start + 2]); GPCollectionType collection = (GPCollectionType)System.Convert.ToInt32(storeData[start + 3]); string tag = storeData[start + 4]; //Debug.Log("timeSpan: " + timeSpan + " collection: " + collection + " score:" + score + " rank:" + rank); GPScore s = new GPScore(score, rank, timeSpan, collection, lb.Id, player.playerId, tag); start = start + 5; lb.UpdateScore(s); lb.UpdateCurrentPlayerScore(s); } } Debug.Log("Loaded: " + LeaderBoards.Count + " Leaderboards"); } _IsLeaderboardsDataLoaded = true; ActionLeaderboardsLoaded(result); }
private void UpdateBoardInfo() { GPLeaderBoard leaderboard = GooglePlayManager.Instance.GetLeaderBoard(LEADERBOARD_ID); if (leaderboard != null) { b_id.text = "Id: " + leaderboard.id; b_name.text = "Name: " + leaderboard.name; b_all_time.text = "All Time Score: " + leaderboard.GetCurrentPlayerScore(GPBoardTimeSpan.ALL_TIME, GPCollectionType.FRIENDS).score; } else { b_all_time.text = "All Time Score: " + " -1"; } }
//-------------------------------------- // PUBLIC METHODS //-------------------------------------- public GPLeaderBoard GetLeaderBoard(string leaderboardId) { foreach (GPLeaderBoard lb in LeaderBoards) { if (lb.Id.Equals(leaderboardId)) { return(lb); } } GPLeaderBoard leaderboard = new GPLeaderBoard(leaderboardId, string.Empty); LeaderBoards.Add(leaderboard); return(leaderboard); }
private void OnScoreDataRecevied(string data) { Debug.Log("OnScoreDataRecevide"); string[] storeData; storeData = data.Split(AndroidNative.DATA_SPLITTER [0]); GP_LeaderboardResult result = new GP_LeaderboardResult(null, storeData[0]); if (result.IsSucceeded) { GPBoardTimeSpan timeSpan = (GPBoardTimeSpan)System.Convert.ToInt32(storeData[1]); GPCollectionType collection = (GPCollectionType)System.Convert.ToInt32(storeData[2]); string leaderboardId = storeData[3]; string leaderboardName = storeData[4]; GPLeaderBoard lb = GetLeaderBoard(leaderboardId); lb.UpdateName(leaderboardName); result = new GP_LeaderboardResult(lb, storeData [0]); for (int i = 5; i < storeData.Length; i += 8) { if (storeData[i] == AndroidNative.DATA_EOF) { break; } long score = System.Convert.ToInt64(storeData[i]); int rank = System.Convert.ToInt32(storeData[i + 1]); string playerId = storeData[i + 2]; if (!players.ContainsKey(playerId)) { GooglePlayerTemplate p = new GooglePlayerTemplate(playerId, storeData[i + 3], storeData[i + 4], storeData[i + 5], storeData[i + 6], storeData[i + 7]); AddPlayer(p); } GPScore s = new GPScore(score, rank, timeSpan, collection, lb.Id, playerId); lb.UpdateScore(s); if (playerId.Equals(player.playerId)) { lb.UpdateCurrentPlayerScore(s); } } } ActionScoresListLoaded(result); }
private void OnPlayerScoreUpdated(string data) { if (data.Equals(string.Empty)) { Debug.Log("GooglePlayManager OnPlayerScoreUpdated, no data avaiable"); return; } Debug.Log("OnPlayerScoreUpdated"); string[] storeData; storeData = data.Split(AndroidNative.DATA_SPLITTER [0]); GP_GamesResult result = new GP_GamesResult(storeData [0]); if (result.isSuccess) { GPBoardTimeSpan timeSpan = (GPBoardTimeSpan)System.Convert.ToInt32(storeData[1]); GPCollectionType collection = (GPCollectionType)System.Convert.ToInt32(storeData[2]); string leaderboardId = storeData[3]; long score = System.Convert.ToInt64(storeData[4]); int rank = System.Convert.ToInt32(storeData[5]); GPLeaderBoard lb; if (_leaderBoards.ContainsKey(leaderboardId)) { lb = _leaderBoards[leaderboardId]; } else { lb = new GPLeaderBoard(leaderboardId, ""); _leaderBoards.Add(leaderboardId, lb); } GPScore variant = new GPScore(score, rank, timeSpan, collection, lb.id, player.playerId); lb.UpdateScore(variant); lb.UpdateCurrentPlayerRank(rank, timeSpan, collection); } ActionPlayerScoreUpdated(result); dispatch(SCORE_UPDATED, result); }
//-------------------------------------- // Private Methods //-------------------------------------- private void DispatchUpdate() { if (Scores.Count == 6) { GPLeaderBoard board = GooglePlayManager.Instance.GetLeaderBoard(_leaderboardId); GP_LeaderboardResult result; if (_ErrorData != null) { result = new GP_LeaderboardResult(board, _ErrorData); } else { board.UpdateCurrentPlayerScore(Scores); result = new GP_LeaderboardResult(board, _ErrorData); } GooglePlayManager.Instance.DispatchLeaderboardUpdateEvent(result); } }
private void OnPlayerScoreUpdated(string data) { if (data.Equals(string.Empty)) { Debug.Log("GooglePlayManager OnPlayerScoreUpdated, no data avaiable"); return; } Debug.Log("OnPlayerScoreUpdated " + data); string[] storeData; storeData = data.Split(AndroidNative.DATA_SPLITTER [0]); GP_ScoreResult result = new GP_ScoreResult(storeData [0]); string leaderboardId = storeData[1]; int requestId = System.Convert.ToInt32(storeData[2]); GPLeaderBoard lb = GetLeaderBoard(leaderboardId); if (result.IsSucceeded) { GPBoardTimeSpan timeSpan = (GPBoardTimeSpan)System.Convert.ToInt32(storeData[3]); GPCollectionType collection = (GPCollectionType)System.Convert.ToInt32(storeData[4]); long score = System.Convert.ToInt64(storeData[5]); int rank = System.Convert.ToInt32(storeData[6]); string tag = storeData [7]; GPScore s = new GPScore(score, rank, timeSpan, collection, lb.Id, player.playerId, tag); result.score = s; lb.ReportLocalPlayerScoreUpdate(s, requestId); } else { lb.ReportLocalPlayerScoreUpdateFail(storeData[0], requestId); } }
private void OnLeaderboardDataLoaded(string data) { string[] storeData; storeData = data.Split(AndroidNative.DATA_SPLITTER [0]); GooglePlayResult result = new GooglePlayResult(storeData [0]); if (result.isSuccess) { _leaderBoards.Clear(); for (int i = 1; i < storeData.Length; i += 26) { if (storeData[i] == AndroidNative.DATA_EOF) { break; } GPLeaderBoard lb = new GPLeaderBoard(storeData[i], storeData [i + 1]); int start = i + 2; for (int j = 0; j < 6; j++) { LeaderBoardScoreVariant variant = new LeaderBoardScoreVariant(storeData[start], storeData[start + 1], storeData[start + 2], storeData[start + 3]); start = start + 4; //Debug.Log (lb.name + ", " + variant.timeSpan.ToString() + ": " + variant.score.ToString()); lb.addScoreVarian(variant); } _leaderBoards.Add(lb.id, lb); } Debug.Log("Loaded: " + _leaderBoards.Count + " Leaderboards"); } dispatch(LEADERBOARDS_LOEADED, result); }
private void ActionScoreRequestReceived(GooglePlayResult obj) { SA_StatusBar.text = "Scores Load Finished"; loadedLeaderBoard = GooglePlayManager.instance.GetLeaderBoard(LEADERBOARD_ID); if(loadedLeaderBoard == null) { Debug.Log("No Leaderboard found"); return; } List<GPScore> scoresLB = loadedLeaderBoard.GetScoresList(GPBoardTimeSpan.ALL_TIME, GPCollectionType.GLOBAL); foreach(GPScore score in scoresLB) { Debug.Log("OnScoreUpdated " + score.rank + " " + score.playerId + " " + score.score); } GPScore currentPlayerScore = loadedLeaderBoard.GetCurrentPlayerScore(displayTime, displayCollection); Debug.Log("currentPlayerScore: " + currentPlayerScore.score + " rank:" + currentPlayerScore.rank); UpdateScoresDisaplay(); }
private GPLeaderBoard GetAndroidLeaderboard(string id) { foreach (GPLeaderBoard lb in AndroidNativeSettings.Instance.Leaderboards) { if (lb.Id.Equals(id)) { return lb; } } GPLeaderBoard l = new GPLeaderBoard(id, string.Empty); AndroidNativeSettings.Instance.Leaderboards.Add(l); return l; }
private void SetInfo(GPLeaderBoard leaderboard) { _Leaderboard = leaderboard; }
public GP_LeaderboardResult(GPLeaderBoard leaderboard, string code) : base(code) { SetInfo(leaderboard); }
//-------------------------------------- // PUBLIC METHODS //-------------------------------------- public void Setup(GPLeaderBoard gpLeaderboard) { gp_Leaderboard = gpLeaderboard; }
private void OnLeaderboardDataLoaded(string data) { Debug.Log("OnLeaderboardDataLoaded"); string[] storeData; storeData = data.Split(AndroidNative.DATA_SPLITTER [0]); GooglePlayResult result = new GooglePlayResult(storeData [0]); if (result.isSuccess) { for (int i = 1; i < storeData.Length; i += 26) { if (storeData[i] == AndroidNative.DATA_EOF) { break; } string leaderboardId = storeData[i]; string leaderboardName = storeData [i + 1]; GPLeaderBoard lb; if (_leaderBoards.ContainsKey(leaderboardId)) { lb = _leaderBoards[leaderboardId]; } else { lb = new GPLeaderBoard(leaderboardId, leaderboardName); _leaderBoards.Add(leaderboardId, lb); } lb.UpdateName(leaderboardName); int start = i + 2; for (int j = 0; j < 6; j++) { long score = System.Convert.ToInt64(storeData[start]); int rank = System.Convert.ToInt32(storeData[start + 1]); GPBoardTimeSpan timeSpan = (GPBoardTimeSpan)System.Convert.ToInt32(storeData[start + 2]); GPCollectionType collection = (GPCollectionType)System.Convert.ToInt32(storeData[start + 3]); //Debug.Log("timeSpan: " + timeSpan + " collection: " + collection + " score:" + score + " rank:" + rank); GPScore variant = new GPScore(score, rank, timeSpan, collection, lb.id, player.playerId); start = start + 4; lb.UpdateScore(variant); lb.UpdateCurrentPlayerRank(rank, timeSpan, collection); } } Debug.Log("Loaded: " + _leaderBoards.Count + " Leaderboards"); } _IsLeaderboardsDataLoaded = true; ActionLeaderboardsLoaded(result); dispatch(LEADERBOARDS_LOADED, result); }
public GP_LeaderboardResult(GPLeaderBoard leaderboard, string code):base(code) { SetInfo(leaderboard); }
//-------------------------------------- // EVENTS //-------------------------------------- private void ActionScoreRequestReceived(GooglePlayResult obj) { GooglePlayManager.ActionScoresListLoaded -= ActionScoreRequestReceived; loadedLeaderBoard = GooglePlayManager.Instance.GetLeaderBoard(LEADERBOARD_ID); if (loadedLeaderBoard == null) { OnNoData(); home.OnScoreLoaded(); Debug.Log("No Leaderboard found"); return; } List <GPScore> scoresLB = loadedLeaderBoard.GetScoresList(GPBoardTimeSpan.ALL_TIME, GPCollectionType.GLOBAL); foreach (GPScore score in scoresLB) { Debug.Log("OnScoreUpdated " + score.Rank + " " + score.PlayerId + " " + score.LongScore); } int i = 1; foreach (LeaderboardFiledsHolder line in lines) { if (line.isPlayerRow) { break; } GPScore score = loadedLeaderBoard.GetScore(i, displayTime, displayCollection); if (score != null) { //順位 i.ToString(); //スコア score.LongScore.ToString(); GooglePlayerTemplate player = GooglePlayManager.Instance.GetPlayerById(score.PlayerId); if (player != null) { //名前 player.name; //この行は表示する if (player.hasIconImage) { //アイコン有り line.Set(i, score.LongScore, player.name, player.icon); } else { //アイコン無し line.Set(i, score.LongScore, player.name, defaultTexture); } } else { //プレイヤはnull //名前 無し //アイコン無し line.Set(i, score.LongScore, "Angler", defaultTexture); } } else { //この行は表示しない line.StopWait(); } i++; } GPScore currentPlayerScore = loadedLeaderBoard.GetCurrentPlayerScore(displayTime, displayCollection); Debug.Log("currentPlayerScore: " + currentPlayerScore.LongScore + " rank:" + currentPlayerScore.Rank); if (currentPlayerScore == null) { lines[5].OnNoData(); } else { lines[5].Set(currentPlayerScore.Rank, currentPlayerScore.LongScore, "YOU", defaultTexture); } home.OnScoreLoaded(); //UpdateScoresDisaplay(); }
private void OnScoreDataRecevied(string data) { Debug.Log("OnScoreDataRecevide"); string[] storeData; storeData = data.Split(AndroidNative.DATA_SPLITTER [0]); GooglePlayResult result = new GooglePlayResult(storeData [0]); if (result.isSuccess) { GPBoardTimeSpan timeSpan = (GPBoardTimeSpan)System.Convert.ToInt32(storeData[1]); GPCollectionType collection = (GPCollectionType)System.Convert.ToInt32(storeData[2]); string leaderboardId = storeData[3]; string leaderboardName = storeData[4]; GPLeaderBoard lb; if (_leaderBoards.ContainsKey(leaderboardId)) { lb = _leaderBoards[leaderboardId]; } else { lb = new GPLeaderBoard(leaderboardId, leaderboardName); Debug.Log("Added: " + leaderboardId); _leaderBoards.Add(leaderboardId, lb); } lb.UpdateName(leaderboardName); for (int i = 5; i < storeData.Length; i += 8) { if (storeData[i] == AndroidNative.DATA_EOF) { break; } long score = System.Convert.ToInt64(storeData[i]); int rank = System.Convert.ToInt32(storeData[i + 1]); string playerId = storeData[i + 2]; if (!players.ContainsKey(playerId)) { GooglePlayerTemplate p = new GooglePlayerTemplate(playerId, storeData[i + 3], storeData[i + 4], storeData[i + 5], storeData[i + 6], storeData[i + 7]); AddPlayer(p); } GPScore s = new GPScore(score, rank, timeSpan, collection, lb.id, playerId); lb.UpdateScore(s); if (playerId.Equals(player.playerId)) { lb.UpdateCurrentPlayerRank(rank, timeSpan, collection); } } } ActionScoreRequestReceived(result); dispatch(SCORE_REQUEST_RECEIVED, result); }
private void PlayServiceSettings() { EditorGUILayout.Space(); EditorGUILayout.HelpBox("Play Service API Settings", MessageType.None); PlayServiceDrawXmlIDs(); EditorGUILayout.Space(); EditorGUI.indentLevel++; { EditorGUILayout.BeginVertical (GUI.skin.box); EditorGUILayout.BeginHorizontal(); AndroidNativeSettings.Instance.ShowLeaderboards = EditorGUILayout.Foldout(AndroidNativeSettings.Instance.ShowLeaderboards, "Leaderboards"); EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); if(AndroidNativeSettings.Instance.ShowLeaderboards) { foreach(GPLeaderBoard leaderboard in AndroidNativeSettings.Instance.Leaderboards) { EditorGUILayout.BeginVertical (GUI.skin.box); EditorGUILayout.BeginHorizontal(); GUIStyle s = new GUIStyle(); s.padding = new RectOffset(); s.margin = new RectOffset(); s.border = new RectOffset(); if(leaderboard.Texture != null) { GUILayout.Box(leaderboard.Texture, s, new GUILayoutOption[]{GUILayout.Width(18), GUILayout.Height(18)}); } leaderboard.IsOpen = EditorGUILayout.Foldout(leaderboard.IsOpen, leaderboard.Name); bool ItemWasRemoved = DrawSortingButtons((object) leaderboard, AndroidNativeSettings.Instance.Leaderboards); if(ItemWasRemoved) { return; } EditorGUILayout.EndHorizontal(); if(leaderboard.IsOpen) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(LeaderboardIdDLabel); leaderboard.Id = EditorGUILayout.TextField(leaderboard.Id); if(leaderboard.Id.Length > 0) { leaderboard.Id = leaderboard.Id.Trim(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(LeaderboardNameLabel); leaderboard.Name = EditorGUILayout.TextField(leaderboard.Name); EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(LeaderboardDescriptionLabel); 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))) { GPLeaderBoard leaderboard = new GPLeaderBoard(string.Empty, "New Leaderboard"); AndroidNativeSettings.Instance.Leaderboards.Add(leaderboard); } EditorGUILayout.Space(); EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); } EditorGUILayout.EndVertical(); } EditorGUI.indentLevel--; EditorGUI.indentLevel++; { EditorGUILayout.BeginVertical (GUI.skin.box); EditorGUILayout.BeginHorizontal(); AndroidNativeSettings.Instance.ShowAchievements = EditorGUILayout.Foldout(AndroidNativeSettings.Instance.ShowAchievements, "Achievements"); EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); if(AndroidNativeSettings.Instance.ShowAchievements) { foreach(GPAchievement achievement in AndroidNativeSettings.Instance.Achievements) { 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.Name); bool ItemWasRemoved = DrawSortingButtons((object) achievement, AndroidNativeSettings.Instance.Achievements); if(ItemWasRemoved) { return; } EditorGUILayout.EndHorizontal(); if(achievement.IsOpen) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(AchievementIdDLabel); achievement.Id = EditorGUILayout.TextField(achievement.Id); if(achievement.Id.Length > 0) { achievement.Id = achievement.Id.Trim(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(AchievementNameLabel); achievement.Name = EditorGUILayout.TextField(achievement.Name); 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)} ); 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))) { GPAchievement achievement = new GPAchievement(string.Empty, "New Achievement"); AndroidNativeSettings.Instance.Achievements.Add(achievement); } EditorGUILayout.Space(); EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); } EditorGUILayout.EndVertical(); } EditorGUI.indentLevel--; EditorGUILayout.LabelField("API:", EditorStyles.boldLabel); EditorGUI.indentLevel++; EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(PlusApiLabel); settings.EnablePlusAPI = EditorGUILayout.Toggle(settings.EnablePlusAPI); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(GamesApiLabel); settings.EnableGamesAPI = EditorGUILayout.Toggle(settings.EnableGamesAPI); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(AppInviteAPILabel); settings.EnableAppInviteAPI = EditorGUILayout.Toggle(settings.EnableAppInviteAPI); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(DriveApiLabel); settings.EnableDriveAPI = EditorGUILayout.Toggle(settings.EnableDriveAPI); EditorGUILayout.EndHorizontal(); EditorGUI.indentLevel--; EditorGUILayout.LabelField("Auto Image Loading:", EditorStyles.boldLabel); EditorGUI.indentLevel++; EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Profile Icons"); settings.LoadProfileIcons = EditorGUILayout.Toggle(settings.LoadProfileIcons); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Profile Hi-res Images"); settings.LoadProfileImages = EditorGUILayout.Toggle(settings.LoadProfileImages); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Event Icons"); settings.LoadEventsIcons = EditorGUILayout.Toggle(settings.LoadEventsIcons); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Quest Icons"); settings.LoadQuestsIcons = EditorGUILayout.Toggle(settings.LoadQuestsIcons); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Quest Banners"); settings.LoadQuestsImages = EditorGUILayout.Toggle(settings.LoadQuestsImages); EditorGUILayout.EndHorizontal(); EditorGUI.indentLevel--; EditorGUILayout.LabelField("Extras:", EditorStyles.boldLabel); EditorGUI.indentLevel++; EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Show Connecting Popup"); settings.ShowConnectingPopup = EditorGUILayout.Toggle(settings.ShowConnectingPopup); EditorGUILayout.EndHorizontal(); EditorGUI.indentLevel--; }