feat: 서버 오류로 인한 랭킹 목록 조회 실패 시 처리 로직 추가

This commit is contained in:
aube.lee
2025-03-02 16:54:38 +09:00
parent 9cc959010f
commit df61604949
6 changed files with 237 additions and 16 deletions

View File

@@ -56,16 +56,11 @@ namespace TON
// Rank 21~50일 때 실행할 코드
return LoadAsset<Sprite>($"UI/Ranking Paw/paw_5th", out result);
}
else if (rank >= 51 || rank == -1)
else
{
// Rank 51 이상일 때 실행할 코드
return LoadAsset<Sprite>($"UI/Ranking Paw/paw_6th", out result);
}
else
{
result = null;
return false;
}
}
public bool LoadMyRankBoxImage(out Sprite result)

View File

@@ -117,6 +117,11 @@ namespace TON
// 내 랭킹 순위 반환
public int GetMyRankNumber()
{
if (RankList.Count == 0)
{
return -1;
}
int rankNumber = RankList.FindIndex(data => data.nickname.Equals(TOP_RECORD.nickname));
return rankNumber;
}

View File

@@ -17,6 +17,7 @@ namespace TON
public List<RectTransform> uiPrefabList = new List<RectTransform>();
public List<RankingUI_RankBox> createRankList = new List<RankingUI_RankBox>();
[SerializeField] private GameObject errorPopup;
[SerializeField] private GameObject pawImage;
[SerializeField] private TextMeshProUGUI playerName;
[SerializeField] private TextMeshProUGUI rankNumber;
@@ -26,17 +27,18 @@ namespace TON
private void OnEnable()
{
// 랭킹 불러오기 오류 팝업 기본 상태태
errorPopup.SetActive(false);
// TODO: 랭킹 리스트 서버 오류 수정 후 주석 해제
// SetRankList();
SetRankList();
SetMyRankData();
}
private void SetMyRankData()
{
ClearData TOP_RECORD = StageManager.Singleton.TOP_RECORD;
// TODO: 랭킹 리스트 서버 오류 수정 후 주석 해제
// int myRankNumber = StageManager.Singleton.GetMyRankNumber();
int myRankNumber = -1;
int myRankNumber = StageManager.Singleton.GetMyRankNumber();
playerName.text = TOP_RECORD.nickname;
rankNumber.text = myRankNumber > -1 ? $"{myRankNumber} th" : "Not Record";
@@ -64,6 +66,12 @@ namespace TON
List<ClearData> rankList = StageManager.Singleton.RankList;
if (rankList.Count == 0)
{
errorPopup.SetActive(true);
return;
}
float y = 0;
for (int i = 0; i < rankList.Count; i++)
{
@@ -87,8 +95,8 @@ namespace TON
private void SetPawIcon(int rank)
{
Sprite loadedPawImage = null;
Assert.IsTrue(AssetManager.Singleton.LoadRankPawIcon(rank, out loadedPawImage));
pawImage.GetComponent<Image>().sprite = loadedPawImage;
if (AssetManager.Singleton.LoadRankPawIcon(rank, out loadedPawImage))
pawImage.GetComponent<Image>().sprite = loadedPawImage;
}
public void OnClickCloseButton()