diff --git a/Gameton-06/Assets/Gameton/Scripts/Backend/BackendRankDataManager.cs b/Gameton-06/Assets/Gameton/Scripts/Backend/BackendRankDataManager.cs
index bf3560d8..ece92eb1 100644
--- a/Gameton-06/Assets/Gameton/Scripts/Backend/BackendRankDataManager.cs
+++ b/Gameton-06/Assets/Gameton/Scripts/Backend/BackendRankDataManager.cs
@@ -183,5 +183,65 @@ namespace TON
}
+ ///
+ /// 플레이어 랭킹 리스트 불러오기기
+ ///
+ public void GetRankData(System.Action> onComplete = null)
+ {
+ // 가져올 필드 지정 (모든 필드를 가져오려면 null 사용)
+ string[] select = new string[] { "nickname", "wave", "score", "play_time" };
+
+ // 결과 제한 수 (100개)
+ int limit = 100;
+
+ // 첫 번째 정렬 기준 (wave 내림차순)
+ string firstKey = "wave";
+
+ // 데이터 비동기 요청
+ Backend.GameData.Get(RANK_TABLE, new Where(), select, limit, firstKey, TableSortOrder.DESC, bro =>
+ {
+ // 요청 성공 확인
+ if (bro.IsSuccess())
+ {
+ // 데이터 처리
+ LitJson.JsonData rankData = bro.GetReturnValuetoJSON()["rows"];
+ Debug.Log("가져온 데이터 수: " + rankData.Count);
+
+ // ClearData 리스트 생성 및 변환
+ List clearDataList = new List();
+
+ for (int i = 0; i < rankData.Count; i++)
+ {
+ LitJson.JsonData row = rankData[i];
+ clearDataList.Add(new ClearData
+ {
+ nickname = row["nickname"].ToString(),
+ wave = int.Parse(row["wave"].ToString()),
+ score = int.Parse(row["score"].ToString()),
+ playTime = float.Parse(row["play_time"].ToString()),
+ });
+ }
+
+ // 정렬 (score 내림차순, playTime 오름차순)
+ clearDataList.Sort((a, b) =>
+ {
+ if (a.score != b.score) return b.score.CompareTo(a.score);
+ return a.playTime.CompareTo(b.playTime);
+ });
+
+ onComplete?.Invoke(clearDataList);
+
+ }
+ else
+ {
+ // 오류 처리
+ Debug.LogError($"랭크 데이터 가져오기 실패: {bro.GetMessage()}");
+ Debug.LogError($"랭크 데이터 가져오기 실패: {bro.GetErrorCode()}");
+ Debug.LogError($"랭크 데이터 가져오기 실패: {bro.GetStatusCode()}");
+ }
+ });
+
+ }
+
}
}
diff --git a/Gameton-06/Assets/Gameton/Scripts/GameStage/StageManager.cs b/Gameton-06/Assets/Gameton/Scripts/GameStage/StageManager.cs
index 2ef95c2a..ffccff36 100644
--- a/Gameton-06/Assets/Gameton/Scripts/GameStage/StageManager.cs
+++ b/Gameton-06/Assets/Gameton/Scripts/GameStage/StageManager.cs
@@ -28,10 +28,10 @@ namespace TON
clearDataManager = new BackendClearDataManager();
rankDataManager = new BackendRankDataManager();
- GetRankData();
+ GetMyRankData();
}
- public void GetRankData()
+ public void GetMyRankData()
{
// 서버에서 내 클리어 데이터를 가져오고 가장 기록이 높은 정보를 세팅
rankDataManager.LoadMyRankData(rankData =>
@@ -86,5 +86,19 @@ namespace TON
expReward = 0;
gameScore = 0;
}
+
+
+ public void GetRankList()
+ {
+ rankDataManager.GetRankData(rankList =>
+ {
+ int i = 1;
+ rankList.ForEach((data) =>
+ Debug.Log($"Rank {i++}: {data.nickname}, Wave {data.wave}, Score {data.score}, PlayTime {data.playTime}"));
+ });
+ }
+
+
+
}
}