[Unity] Coroutine Delayed Calls

프로파일러에서 Coroutine Delayed Calls 때문에 프레임이 드랍되는 경우 


코루틴의 IEnumerator 에서 while 문이 있다면 


yield return new WaitForEndOfFrame();


을 남발하지 않았는지 확인해봐야 합니다.



코루틴을 생성하면 소량의 가비지가 할당되기 때문에 남발하면 딜레이콜이 생기게 됩니다.



이런 경우


WaitForEndOfFrame delay = new WaitForEndOfFrame();


이렇게 while문 밖에다가 변수를 선언하고 


while (isRun)

{

yield return delay;

}


이런식으로 반복문을 돌려주어야 딜레이콜이 적당히 생기게 됩니다.

이 글을 공유하기

댓글

Designed by JB FACTORY