foreach (child in children)
Object.Destroy(child.gameobject);
이런식으로 짜면 문제될 수 있음?
Object.Destroy는 유니티 사이클로 실행되는걸 예약만 걸어놓는거라 당장 반복자에 영향주는게 없지 않나?
여태 이걸로 문제된적은 없는데
GPT가 그렇게 짜지 말라고 자꾸 머라하는데 문제가... 되나? 고치려면 대공사 해야되는데;
foreach (child in children)
Object.Destroy(child.gameobject);
이런식으로 짜면 문제될 수 있음?
Object.Destroy는 유니티 사이클로 실행되는걸 예약만 걸어놓는거라 당장 반복자에 영향주는게 없지 않나?
여태 이걸로 문제된적은 없는데
GPT가 그렇게 짜지 말라고 자꾸 머라하는데 문제가... 되나? 고치려면 대공사 해야되는데;
상관없긴한데 가비지 컬렉터가 어떻게 관리할지 모르겠지만 한번에 여러개 지우면 렉걸리수도있어.
역순 아녀서 그런 거 아님? 나도 뭐 빼거나 없애는 건 역순으로 해놓음
foreach실행 조건이 child 오브젝트 있을때 도는거라 상관없는거 아닐까
상관없음. 지피티 맞고싶니?
반복 도중에 컬렉션 수정하는거 아니면 상관 없음
그래서 지피한테 이렇게 똑같이 되물었었는데 '다음 프레임에서 실행되긴 하지만 컬렉션 수정이 없으리라는 보장도 없다' 라는 답변이 돌아옴 조금 더 구체적인 질문에는 트랜스폼 하이어라키 구조에 변화를 줘서 예기치 못한 오류가 생길 수 있다 라고 답하는데 트랜스폼 하이어라키는 만져도 유니티 사이클에서 만질테니 루프 중간에 바뀌진 않을거같고 설령 루프 중간에 바뀐다 해도 트랜스폼 하이어라키 변동이 컬렉션 변동이랑 무슨 상관이지 싶기는 한데 얘도 잘 모르는거같긴함
컬렉션 요소을 참조로 념겼는데 컬렉션을 수정할 수 있나? 최악의 경우가 요소가 null로 설정되는것 아닌가?
하이어라키 상태랑은 아무 상관도 없는게 GetComponentsInChildren등 사용해서 하이어라키 기반으로 들고와도 전달되는건 호출 당시의 하이어라키에서 들고온 참조일 뿐이라 나중에 하이어라키 수정되어도 이미 들고온 컬렉션이 변하는건 아니라서 아무 이슈 없음