티스토리 뷰

유니티를 개발할때 일정 시간 이후 이벤트를 걸어야 할 경우가 많습니다!

 

이럴때 어떻게 타이머를 설정해야 할까요?

 

그 방법에 대해서 빠르게 알아보겠습니다.

 

오늘 설명할 방법은 3가지입니다.

 

1. Time.deltatime을 활용

2. 코루틴 활용

3. invoke 활용

 

 

먼저 Time.deltatime을 활용한 방법을 알아보겠습니다. 해당 방법은 다른 이론없이 update내에서 간단하게 구현할 수 있는 방법입니다.

float dTime = 0;

// Update is called once per frame
void Update()
{
    dTime += Time.deltaTime;
    if(dTime >= 5f){
    Debug.Log("5초 경과!!");
    dTime = 0;
}

 - 전역변수로 dTime을 설정해줍니다. dTime에 Time.deltaTime을 업데이트마다 더해 시간이 얼마나 흘렀는지 체크한 합니다.

 - if문을 활용해 dTime에 원하는 초를 초과했는지 체크하면 완료입니다.

 

 

두번째, 코루틴을 활용한 방법입니다. 코루틴은 멀티쓰레드와는 다른 개념이란점 유의해 주시길 부탁드립니다.

IEnumerator Timer(float time){
    yield return new WaitForSeconds(time);
    //액션
}

코루틴의 WaitForSeconds를 활용하면 타이머를 구현 할 수 있습니다. (코루틴을 사용할때는 중복을 조심하셔야합니다.)

 

마지막은 invoke 입니다. invoke는 많은 초급 개발자들이 모르고 있는 방법입니다. 사용법은 다음과 같습니다.

void Update()
{
	Invoke("Action", 5f);
}

void Action(){
	Debug.Log("5초 경과!!");
	//액션
}

Invoke(함수의 이름, 시간)입니다. Update에 넣은건 예시라 필요한 부분에서 Invoke를 호출하시면 됩니다.

 

그럼 다음 글에서 뵙겠습니다!

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함