InvalidOperationException: Collection was modified; enumeration operation may not execute.
컬렉션을 반복하는 도중에 컬렉션의 요소를 추가하거나 제거할 때 발생하는 오류라고 한다.
해결방법으로는 다른 방법으로 컬렉션을 접근하거나
수정할 요소를 임시로 저장하는 방법이 있다.
그런데
foreach (var item in Projectiles)
Despawn(item);
이건 안되고
for(int i = 0; i< Projectiles.Count; ++i)
Despawn(Projectiles[i]);
이건 된다.
foreach 문은 내부적으로 enumerator를 사용하는데, 이 enumerator가 컬렉션을 수정하는 동작을 감지한다고 한다.
따라서 foreach문을 돌리고 있는데 컬렉션을 수정하면 저 오류가 뜨는 것이다.
'내일배움캠프(Unity)' 카테고리의 다른 글
TIL - 클린코드 특강, 게임 개발 숙련 강의 정리1 (1~2강) (0) | 2023.12.08 |
---|---|
TIL - 코드리뷰 및 팀프로젝트 발표 (0) | 2023.12.07 |
TIL - 팀프로젝트 (0) | 2023.12.05 |
TIL - Unity 팀 프로젝트 (1) | 2023.12.04 |
TIL - 푸드 파이트 대회(알고리즘 코드카타) (0) | 2023.12.01 |