• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

IEnumerator 사용이유?

23.05.02 22:47 작성 조회수 316

0

코루틴을 사용하는 이유가 뭔가요?

시간이 지난 뒤에 함수를 실행하기 위해서는 Invoke를 사용하고

반복을 위해서는 While을 사용하면 되지않나요? 너무 햇갈려요..

답변 1

답변을 작성해보세요.

1

시간이 지난 뒤에 메소드를 실행하기 위해서 Invoke를 사용해도 되지만

Invoke의 경우 매개변수를 사용할 수 없고, 코루틴은 매개변수를 사용할 수 있습니다.

또한 코루틴과 Invoke의 속도를 비교했을 때 코루틴이 조금 더 빠릅니다.

 

그 외에도 코루틴은 TimeScale이 0일 때도 동작할 수 있다는 점과

코루틴은 게임오브젝트가 비활성화되면 동작하지 않지만 Invoke는 오브젝트를 파괴하기 전까지 활성/비활성 여부와 관계 없이 실행 됩니다. (이 부분은 어떤게 장점이다. 라기 보단 상황에 따라 사용할 수 있는 부분입니다.)

 

저는 주로 Invoke보다 코루틴을 선호하고 사용하는 경향이 있지만 Invoke를 쓰면 안된다. 라는건 아니기 때문에 원하는걸 상황에 따라 사용하면 됩니다.