[사운드 오브 좀비] timer (분:초) 표시 하기

Yerin·2022년 6월 7일
0

사운드오브좀비

목록 보기
3/4

게임에 시간을 표시해야 하는데 초를 기준으로 하다 보니 아래와 같이 표시 되어 가독성이 떨어지는 경우가 발생하였다.

변경 전 코드

float m_Timer;
void Start()
    {
        StartTimer();
    }
public void StartTimer()
    {
        m_TimerRunning = true;
    }
void Update()
    {
        if (m_TimerRunning)
        {
 			m_Timer += Time.deltaTime;
            GameSystemInfo.Instance.UpdateTimer(m_Timer);
        }
     }   

변경 후 코드

float m_Timer;
string minutesS = "";
string secondsS = "";
void Start()
    {
        StartTimer();
    }
public void StartTimer()
    {
        m_TimerRunning = true;
    }
void Update()
    {
        if (m_TimerRunning)
        {
 			m_Timer += Time.deltaTime;
            float minutes = Mathf.Floor(m_Timer / 60);
            float seconds = Mathf.RoundToInt(m_Timer % 60);
            
            if (minutes < 10)
            {
               minutesS = "0" + minutes.ToString();
            }
            else {
                minutesS =  minutes.ToString();
            }
            if (seconds < 10)
            {
                 secondsS = "0" + Mathf.RoundToInt(seconds).ToString();
            }
            else {
                secondsS =  Mathf.RoundToInt(seconds).ToString();
            }

            GameSystemInfo.Instance.UpdateTimer(string.Format("{0}:{1}",minutesS ,secondsS));
        }
     }   

총 시간(초 기준)을 60으로 나눈 몫을 분으로,
나머지를 초로 변수에 저장하여 표시해준다.

자릿수를 맞추기 위해 10보다 작은 수에는 0을 붙여주었다.

물론 UpdateTimer의 변수 타입도 int -> string으로 변경해야 한다.

완성!

근데 : 이 왜 '으로 나오는 지는 모르겠다. 🧐

profile
재밌는 코딩 공부

0개의 댓글