게임 개발

유니티 Invoke, InvokeRepeating, CancelInvoke

오리의테크 2022. 2. 10. 16:00
728x90
반응형

1. Invoke

유니티 스크립트 작업 중 일정 시간이 지난 후에 함수를 실행을 하고 싶을 때 쓰는 것이 Invoke입니다.

어떻게 보면 코루틴(coroutine)과 같은 것이 아닌가 할 수 도 있지만 coroutine은  시간을 지연시키고 함수를 반복 실행을 하는 것이고, Invoke는 시간을 지연시키고 함수를 한 번만 실행을 시킨다는 점에서 차이가 있습니다.

Invoke 형식

Invoke("함수명", 지연시간);

 

예제

스크립트를 오브젝트에 넣고 실행을 하게 되면 위와 같은 결과가 콘솔 창에 뜰 것입니다.

2. InvokeRepeating

Invoke는 지연시간 후 한 번만 실행이 되지만 InvokeRepeating을 쓰게 되면 지정한 주기로 반복 실행이 가능해집니다.

InvokeRepeating 형식

InvokeRepeating("함수명", 지연시간, 반복주기);

 

예제

스크립트를 오브젝트에 넣고 실행을 시키면 5초 뒤에 함수가 실행이 되면서

1초마다 반복 실행을 시켜주는 결과가 나옵니다

이 반복을 멈추기 위해서는 CancelInvoke를 써야 합니다.

3. CancelInvoke

실행 중인 Invoke를 중지시키는 함수입니다.

CancelInvoke 형식

CancelInvoke("함수명");

 

예제

프로젝트를 실행하고 콘솔 창을 보면 5초 뒤에 함수가 실행을 하고 10초를 넘겼을 때

함수가 종료가 된 것을 확인할 수 있습니다.

728x90
반응형