fix: 랭킹 정보 갱신된 후 전체 랭킹 UI 접근 시 랭킹 정보가 정상적으로 업데이트 되지 않는 오류 수정
This commit is contained in:
		@@ -38,7 +38,6 @@ namespace TON
 | 
			
		||||
                {
 | 
			
		||||
                    heartData.currentHearts = int.Parse(callback.FlattenRows()[0]["currentHearts"].ToString());
 | 
			
		||||
 | 
			
		||||
                    Debug.Log("test::: " + callback.FlattenRows()[0]["lastHeartTime"]);
 | 
			
		||||
                    heartData.lastHeartTime = callback.FlattenRows()[0]["lastHeartTime"].ToString();
 | 
			
		||||
                    onComplete?.Invoke(heartData); // 성공 시 데이터 반환
 | 
			
		||||
                }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,6 @@
 | 
			
		||||
using System.Collections;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using UnityEngine;
 | 
			
		||||
using UnityEngine.Assertions;
 | 
			
		||||
 | 
			
		||||
@@ -88,9 +89,14 @@ namespace TON
 | 
			
		||||
            gameScore = 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 전체 랭킹 리스트 조회 
 | 
			
		||||
        public void GetRankList()
 | 
			
		||||
        // 전체 랭킹 리스트 조회
 | 
			
		||||
        public void GetRankList(System.Action onComplete = null)
 | 
			
		||||
        {
 | 
			
		||||
            if (RankList.Count > 0)
 | 
			
		||||
            {
 | 
			
		||||
                RankList.Clear();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            rankDataManager.GetRankData(rankData =>
 | 
			
		||||
            {
 | 
			
		||||
                for (int i = 0; i < rankData.Count; i++)
 | 
			
		||||
@@ -112,11 +118,22 @@ namespace TON
 | 
			
		||||
                    if (a.score != b.score) return b.score.CompareTo(a.score);
 | 
			
		||||
                    return a.playTime.CompareTo(b.playTime);
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
                // top 50 까지만 RankList에 세팅
 | 
			
		||||
                if (RankList.Count > 50)
 | 
			
		||||
                {
 | 
			
		||||
                    RankList = RankList.GetRange(0, 50);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                onComplete?.Invoke();
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public List<ClearData> GetRankDataList()
 | 
			
		||||
        public async Task<List<ClearData>> GetRankDataListAsync()
 | 
			
		||||
        {
 | 
			
		||||
            var tcs = new TaskCompletionSource<bool>();
 | 
			
		||||
            GetRankList(() => tcs.SetResult(true));
 | 
			
		||||
            await tcs.Task;
 | 
			
		||||
            return RankList;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -123,17 +123,19 @@ namespace TON
 | 
			
		||||
            UIManager.Show<SkillSettingUI>(UIList.SkillSettingUI);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void OnClickRankingButton()
 | 
			
		||||
        public async void OnClickRankingButton()
 | 
			
		||||
        {
 | 
			
		||||
            // 랭킹 UI 추가
 | 
			
		||||
            // 랭킹 정보를 다시 불러오기 위해 await 사용
 | 
			
		||||
            UIManager.Show<LoadingUI>(UIList.LoadingUI);
 | 
			
		||||
            await StageManager.Singleton.GetRankDataListAsync();
 | 
			
		||||
 | 
			
		||||
            UIManager.Hide<LoadingUI>(UIList.LoadingUI);
 | 
			
		||||
 | 
			
		||||
            UIManager.Show<RankingUI>(UIList.RankingUI);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void OnClickShopButton()
 | 
			
		||||
        {
 | 
			
		||||
            // TODO: 상점 UI 추가
 | 
			
		||||
            // 상점은 Scene으로 전환하자.
 | 
			
		||||
            
 | 
			
		||||
            Main.Singleton.ChangeScene(SceneType.Shop);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
using System.Collections;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using TMPro;
 | 
			
		||||
using UnityEngine;
 | 
			
		||||
using UnityEngine.Assertions;
 | 
			
		||||
using UnityEngine.UI;
 | 
			
		||||
 | 
			
		||||
namespace TON
 | 
			
		||||
@@ -25,12 +25,13 @@ namespace TON
 | 
			
		||||
        [SerializeField] private TextMeshProUGUI scoreText;
 | 
			
		||||
        [SerializeField] private TextMeshProUGUI playTimeText;
 | 
			
		||||
 | 
			
		||||
        private List<ClearData> rankList = new List<ClearData>();
 | 
			
		||||
 | 
			
		||||
        private void OnEnable()
 | 
			
		||||
        {
 | 
			
		||||
            // 랭킹 불러오기 오류 팝업 기본 상태
 | 
			
		||||
            errorPopup.SetActive(false);
 | 
			
		||||
 | 
			
		||||
            // 랭킹 리스트 서버 오류 수정 후 주석 해제
 | 
			
		||||
            SetRankList();
 | 
			
		||||
            SetMyRankData();
 | 
			
		||||
        }
 | 
			
		||||
@@ -41,7 +42,7 @@ namespace TON
 | 
			
		||||
            int myRankNumber = StageManager.Singleton.GetMyRankNumber();
 | 
			
		||||
 | 
			
		||||
            playerName.text = TOP_RECORD.nickname;
 | 
			
		||||
            rankNumber.text = myRankNumber > -1 ? $"{myRankNumber} th" : "Not Record";
 | 
			
		||||
            rankNumber.text = myRankNumber > -1 ? $"{myRankNumber + 1} th" : "Not Record";
 | 
			
		||||
            waveText.text = $"{TOP_RECORD.wave}";
 | 
			
		||||
            scoreText.text = $"{TOP_RECORD.score}";
 | 
			
		||||
 | 
			
		||||
@@ -64,7 +65,7 @@ namespace TON
 | 
			
		||||
                uiPrefabList.Clear();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            List<ClearData> rankList = StageManager.Singleton.GetRankDataList();
 | 
			
		||||
            rankList = StageManager.Singleton.RankList;
 | 
			
		||||
 | 
			
		||||
            if (rankList.Count == 0)
 | 
			
		||||
            {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user