문제 요약
풀링된 UI 오브젝트 사용 중 SetParent() 호출 시 예외 발생
예외 메시지:
MissingReferenceException: The object of type 'GameObject' has been destroyed…
문제 원인
오브젝트를 Push() 한 후에도 죽은 부모(ScrollContentObject) 아래에 계속 붙어 있었음
이후 Pop() 하면서 SetParent() 호출 시
→ Unity 내부에서 기존 부모를 detach 시도
→ 부모가 이미 Destroy 상태여서 transform 접근 시 예외 발생
해결 방법
void OnRelease(GameObject go)
{
go.SetActive(false);
go.transform.SetParent(Root); // 부모가 Destroy 되기 전 안전한 위치로 이동
}
Push 시점에 오브젝트의 부모를 Root로 교체하여 죽은 부모와의 참조를 명확히 끊음
결과 및 효과
MissingReferenceException 완전히 제거
풀링 오브젝트가 항상 유효한 transform 계층을 유지