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