게임에 시간을 표시해야 하는데 초를 기준으로 하다 보니 아래와 같이 표시 되어 가독성이 떨어지는 경우가 발생하였다.
변경 전 코드
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으로 변경해야 한다.
완성!
근데 : 이 왜 '으로 나오는 지는 모르겠다. 🧐