-
[TIL] 6주차 1일 팀 프로젝트 진행중 랭킹 시스템 구현 과정개발일지/스파르타 코딩클럽 부트캠프 2024. 5. 20. 20:37
오늘 한 것
- 분반별 과제
- 팀 프로젝트 회의
- 유니티의 다양한 활용 특강
- 팀 프로젝트 진행
오늘 발생한 문제
아 일단 멘탈이..
랭킹 시스템을 만드는 도중 문제가 너무 많이 발생하고
고치고고치고 또 고치고 고치고.......... 정말 ㅠㅠ
// 현재 플레이어의 점수와 이름을 받아서 실행됨 private void RankingSet(float currentScore, string currentName) { int j = 0; Debug.Log("123123"); // 현재에 저장하고 시작 PlayerPrefs.SetString(j.ToString() + "BestName", currentName); PlayerPrefs.SetFloat(j.ToString() + "BestScore", currentScore); float score = 0f; string Name = ""; for (int i = 0; i < 5; i++) { // 저장된 최고점수와 이름 가져오기 bestScores[i] = PlayerPrefs.GetFloat(i.ToString() + "BestScore"); bestName[i] = PlayerPrefs.GetString(i.ToString() + "BestName"); // 현재 점수가 랭킹에 오를 수 있다면 if (bestScores[i] < currentScore) { // 스왑한다 ( 현재 랭킹에 있던 점수를 빼내고 빈 자리에 현재 점수를 넣는다. 자리 바꾸기 ) score = bestScores[i]; Name = bestName[i]; bestScores[i] = currentScore; bestName[i] = currentName; // 랭킹에 저장 PlayerPrefs.SetFloat(i.ToString() + "BestScore", currentScore); PlayerPrefs.SetString(i.ToString() + "BestName", currentName); // 다음 반복을 위해서 currentScore = score; currentName = name; } } // 랭킹에 맞춰서 점수와 이름을 저장한다. Array.Sort(bestScores); Array.Sort(bestName); for (int i = 0; i < 5; i++) { rankScore[i] = PlayerPrefs.GetFloat(i.ToString() + "BestScore"); rankName[i] = PlayerPrefs.GetString(i.ToString() + "BestName"); } }
만들던 랭킹 시스템인데
public void PlayerNameSet() { // TODO :: 이름을 입력했을 때 playerName이 값을 받게 해야함 playerName = nameInput.text; resetBtn.SetActive(true); closeBtn.SetActive(true); RankingSet(nowScore, playerName); }
마지막에 이름을 입력 완료하는 동시에 이름을 변수에 넣어주고
함수를 실행시킨다.
튜터님의 피드백을 생각하여
높은 숫자부터 검사하는 식과 반복문을 하나 빼고,
Update문에서 실행하는 것이 아닌 다른 방법으로의 호출 등 많은 부분을 고쳤는데
아직 마지막 단계에서 해결이 안돼서..... 여기까지..
'개발일지 > 스파르타 코딩클럽 부트캠프' 카테고리의 다른 글
[TIL] 6주차 3일 팀 프로젝트 마무리 단계, 랭킹 시스템 (2) 2024.05.22 [TIL] 6주차 2일 팀 프로젝트 여전히 진행중 (2) 2024.05.21 [TIL] 5주차 5일 팀 프로젝트 진행중 , Scriptable Object (0) 2024.05.17 [TIL] 5주차 4일 팀 프로젝트 시작, 객체지향 특강 , C# 문법 복습 (0) 2024.05.16 [TIL] 5주차 2일 Prefab, Instantiate, Enum (0) 2024.05.14