반복하지만 반복시기와 종료시기의 조작을 원할때 Invoke와 Coroutine을 사용한다.
그렇다면 둘의 차이는 무엇인가
대표적으로는
Invoke의 조작 코드가 좀 더 간결하다.
Invoke("FuncName", 1f);
Func()
{
//1초 뒤에 함수 시작
}
함수의 반복을 원하면
InvokeRepeating("FuncName", 1f, 10f);
이렇게 하면 함수가 1초 후 시작되며 이후 10초에 간격을 두고 반복 작동한다.
이전에 올렸던 Coroutine 조작법에 비해 간단하다. 대신 매개변수를 선언할 수 없다.
그리고 오브젝트가 꺼지면 Coroutine은 같이 종료하지만 Invoke는 계속 동작한다.
그렇다면 오브젝트가 파괴되면 어떻게 될까?
당연히 Invoke도 없어졌다.
추가로 씬이 바뀌는 경우 Invoke는 Coroutine과 다르게 GameMng Instance에서도 실행이 안된다. 왜인지는 모르지만 부를 수 없다는 문구가 뜸
마지막으로 취소를 원한다면
CancelInvoke("FuncName");
인자에 입력값이 없으면 해당 MonoBehaviour에서 작동하는 모든 Invoke가 멈춘다.
'게임 프로그래밍 > Unity' 카테고리의 다른 글
| 게임오브젝트를 특정 오브젝트의 자식으로 생성하고 위치 정할 때 주의사항 (0) | 2021.11.12 |
|---|---|
| DropDown 사용법 (0) | 2021.11.12 |
| 무한루프 (0) | 2021.11.12 |
| Z 위치에 대해서 (0) | 2021.11.12 |
| AddComponent (0) | 2021.11.12 |




최근댓글