안녕하세요 ~ 오늘은 함수를 일정 시간 후 실행 시키는 방법과 반복 시키는 방법을 알려드리려 합니다 !
먼저 함수를 일정 시간 후 실행 시킬 수 있는 Invoke 함수에 대해 알아봅시다 !
1 2 3 4 5 6 7 8 | void Start () { Invoke("InvokeTest", 2f); } void InvokeTest() { Debug.Log("Invoke Start !"); } | cs |
사용하실 땐
Invoke ("지연 실행 시키려는 함수명", 지연시키려는 시간(float자료형));
라고 사용하시면 됩니다.
만약 위 스크립트 형태로 실행하게 되면 씬 실행 후 2초 후에 InvokeTest 라는 함수가 실행되어서 Console 창에 나오게 됩니다.
그리고 함수를 일정시간마다 반복적으로 실행 시키는 InvokeRepeating 함수가 있습니다.
1 2 3 4 5 6 7 8 | void Start () { InvokeRepeating("RepeatingTest", 1f, 3f); } void RepeatingTest () { Debug.Log("Repeating Start !"); } | cs |
InvokeRepeating ("반복 실행 시키려는 함수명", 지연시키려는 시간 float자료형, 반복 주기 시간 (float 자료형));
라고 사용하시면 됩니다.
만약 위 처럼 사용하게 되면 RepeatingTest 라는 함수가 씬 실행 후 1초 뒤에 실행되고나서 3초 간격으로 반복 실행됩니다.
Console 창에서 보게 되면 1초 후에 한번 출력되고 후에 3초마다 무한 반복 실행되게 됩니다 !
만약 무한 반복이 아닌 일정 횟수만 실행하고 싶다면
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | private int count = 0; void Start () { InvokeRepeating("RepeatingTest", 1f, 3f); } void RepeatingTest () { Debug.Log("Repeating Start !"); count += 1; } void Update() { if (count >= 5) { CancelInvoke("RepeatingTest"); } } | cs |
count (실행 시키고 싶은 횟수)로 조건문을 걸어서 CancleInvoke 함수를 사용하시면 됩니다. CancleInvoke는 반복 실행 시키는 InvokeRepeating을 취소시키는 함수입니다 !
실행시키게 된다면
이런 식이 됩니다 !
"5번 모두 실행되었습니다." 는 CancleInvoke 가 실행되는 업데이트 문에 임의로 삽입했습니다. 혹여나 사용하실 땐 Update 문에 넣게 되면 프레임 마다 실행되기 때문에 비효율적이니 종료하는 코루틴이나 리턴을 이용하시면 됩니다 ~
오늘은 함수 지연 실행 방법에 대해 포스팅 했습니다 ! 게임을 개발하려는 모든 분들에게 조금이나마 도움이 되었으면 좋겠네요 ~
'Unity (C#) > Old' 카테고리의 다른 글
유니티 캐릭터 움직이기 (0) | 2018.08.07 |
---|---|
유니티 제한시간/누적시간 만들기 (0) | 2018.08.06 |
유니티 오브젝트 회전시키기 (0) | 2018.08.03 |
유니티 카메라 줌인/아웃 구현하기 (0) | 2018.08.02 |
유니티 레이아웃 커스텀하기 (0) | 2018.07.30 |
최근댓글