인프런 커뮤니티 질문&답변

BiN_님의 프로필 이미지
BiN_

작성한 질문수

[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템

SkillSystemWindow

InvalidOperationException 에러에 대해 궁금한점

작성

·

114

·

수정됨

0

영상을 보고 난 후 이런 툴을 제 프로젝트에 적용시켜 혼자 만들어 보고 있었는데

image.pngimage.png

이렇게 사용시에 foreach 문에서 InvalidOperationException이 발생 하였습니다. (foreach를 도는 중에는 원소 값을 건드리면 안되어 발생하는 에러)

영상 23분에 보면은 x버튼을 눌렀을 때 database에서 원소 값을 remove 시키는데 이 부분에선 발생하지 않던데 이건 무슨 차이 때문에 발생하지 않는건가요?

답변 1

0

Developer G님의 프로필 이미지
Developer G
지식공유자

수강해주셔서 감사합니다.

foreach문에서 Collection이 수정되자마자 해당 Error가 발생하는 것은 아니구요, 이번 index 작업이 끝나고 다음 index 조건 검사를 할 때 발생하게 됩니다. 그래서 Collection을 수정하고 이번 index 작업이 끝나기 전에 break로 foreach문을 빠져나가면 Erorr가 발생하지 않습니다.

강의 SkillSystemWindow Script를 보면 256번 줄에서
database.Remove(data);
로 data를 지운 뒤,

바로 아래 272번 줄에서
// data가 삭제되었다면 즉시 Database 목록을 그리는걸 멈추고 빠져나옴
if (data == null)
break;

data가 null이면 break로 빠져나갑니다.

감사합니다.

BiN_님의 프로필 이미지
BiN_
질문자

아 그래서 에러가 발생혔던거군요 감사합니다!

BiN_님의 프로필 이미지
BiN_

작성한 질문수

질문하기