본문 바로가기
유니티3D[Unity3D]

유니티(Unity) 타이머

by 은유지니 2021. 4. 12.

다음과 같이 코드를 짜주면 간단하게 완성된다~

using UnityEngine.UI; //text 사용 위해 필요하다.

public Text timeText; //인스펙터 창에서 설정해줘야함.

float time = 10.0f;

void Update()
{
    if (time > 0)
        time -= Time.deltaTime; // 프레임 수 빼준다..((deltaTime으로 어느 컴퓨터든 같게 기준
    else
    	time = 0;
        
    timeText.text = "Time : " + time.ToString("F1"); //time.Tostring("F1")는 소숫점 첫째 자리까지만 표기
}

하지만, 타이머같은 부분은 Update문에 들어가면 성능 면에서 굉장히 비효율적이다.

타이머는 코루틴을 사용해서 작성해야 효율적인 코드작성이 가능하다.

다음은 코루틴을 사용한 타이머 코드(초 단위)이다.

using UnityEngine.UI; //text 사용 위해 필요하다.

public Text timeText; //인스펙터 창에서 설정해줘야함.

void Start()
{
	StartCoroutine(Timer(10.0f)); //10초 타이머 시작
}

IEnumerator Timer(float time)
{
    while(time > 0)
    {
        time -= Time.deltaTime;
        timeText.text = "Time : " + time.ToString("F1"); //time.Tostring("F1")는 소숫점 첫째자리까지만 표기
        yield return null;
    }
    time = 0;
    timeText.text = "Time : " + time.ToString("F1");
]