해결된 질문
작성
·
628
답변 1
1
해당 설명은 쉽게 설명하기 위해 병렬처리로 비유했습니다. TPS 비디오 연재가 끝나면 다시 리뉴얼할 생각입니다.
코루틴은 병렬처리가 아니며 유니티는 async가 제대로 지원 안되던 시절 병렬처리를 흉내내기 위해 코루틴을 적극적으로 사용했습니다.
코루틴은 병렬처리처럼 동작하지만, 실제로는 여러 코루틴이 실행중인 경우 yield문을 통해 서로 바톤을 연속적으로 넘겨가는 방식으로 동작합니다.
따라서 다음과 같이 어떤 코루틴 내부에서 무한루프를 루프 중간에 yield문을 삽입하지 않고 실행하면, 다른 코루틴이나 이외의 처리로 넘어갈 수 없으므로 앱이 크래시됩니다.
// 크래시가 안남
while(true){
// do something
yield return null;
}
// 크래스가 남
while(true) {
// do something
}
yield return null;