본문 바로가기
게임 개발 일지/내일배움캠프 TIL

region 사용하기 / UI - RankPanel 만들기

by 빛하_ 2023. 12. 6.

 

 

Unity 게임 개발 입문 
팀프로젝트 : Arkanoid24

 

 

길어지는 script 정리하는 방법

#region 을 사용하면 선언한 변수들을 깔끔하게 정리할 수 있다.

 

 

랭킹 UI 만들기

 

// RankPanel.cs

...

 float rankscore = 0;
 rankscore = Managers.Game.Score;
 PlayerPrefs.SetFloat("Ranks", rankscore);
 float tmpScore = 0f;

 for (int i = 0; i < 4; i++)
 {
     RankScores[i] = PlayerPrefs.GetFloat("Ranks");

     while (RankScores[i] < rankscore)
     {
         tmpScore = RankScores[i];
         RankScores[i] = rankscore;

         PlayerPrefs.SetFloat("Ranks", rankscore);

         rankscore = tmpScore;
     }
 }

 

어제 생각한 로직대로 스크립트에 구현했다.

RankScore 배열을 만들어서 현재스코어(Managers.Game.Score) 를 저장하는 방식이다.

 

현재 게임에는 4가지 모드가 있다.

랭킹 시스템을 모든 모드에 적용하려고 했는데, 1가지 모드(무한모드)에서만 사용하기로 변경했다.

그래서 rankpanel.cs 를 따로 만들지 않고 GameManager.cs의 score 부분에서 기능을 구현하기로 했다.

 

// GameManager.cs

...

Score += score;
MainUI.SetScoreUI(Score);

// 무한 모드에서 최고 점수 기록
if (Mode != GameMode.Infinity) return;

if (Score >= BestScore)
{
    BestScore = Score;
    PlayerPrefs.SetFloat(Data.BestScore, BestScore);
    MainUI.SetBestScoreUI(BestScore);
}

 

RankingPopup 은 무한모드에서만 띄우기 때문에 해당 모드의 score만 따로 저장할 수 있다.

 

 

 

 

오늘의 회고

 

팀원의 도움으로 랭킹 UI 구현을 마쳤다.

결국 다른 방향으로 깨끗하게 정리된 코드를 사용하게 되었지만,

어제 오늘 열심히 영상 찾아보고, 코드 만들기 위해 노력한 게 조금은 영양분이 된 것 같아 다행이다.

 

기능 구현을 마치고 온 팀원이 합심해서 QA를 진행했다.

오브젝트가 다양하고, 아이템 획득/사용, 게임 종료 시점 등등 게임 생명주기 내에 여러가지 일이 일어나면서 다양한 버그를 만날 수 있었다.

나는 여러가지 방식으로 게임 구석구석까지 탐색하는 편이라 버그 찾는 게 재미있었다.

버그를 발견하면 어디서 발생한 문제인지 파악하고, 해결법을 찾는 것이 중요하다.

이번 프로젝트를 하면서 팀원들을 보고 버그파악/해결 부분에서 많이 배웠다.

 

[모코코와 사라진 거신]  프로젝트에 참여할 수 있는 사람이 되기 위해

내일도 힘내자!

 

 

 

 

 

댓글