내일배움캠프_Unity_6기/TIL_최종프로젝트
TIL : 2024-12-09(월) :: 최종프로젝트 개발 일지(11) - Scene을 로드하는경우 파괴된 Object에 접근되는 상황 (트러블 슈팅)
BirdHead
2024. 12. 9. 21:09
Enemy 및 Projectile 을 ObjectPool Class에 넣어 관리를 하는데,
Scene을 로드하는 경우 ObjectPollManager는 DontDestroy로 파괴되지 않아 데이터가 유지되지만
Enemy Object들은 Scene이 로드되면서 파괴되기에 ObjectPoolManager에는 파괴된 Object만 가지고 있게 된다.
해당 트러블 슈팅을 겪고 있어 두가지 방법을 생각하고 있다.
1. Scene이 로드 될때마다 ObjectPool을 비우기
이 방법을 사용하면 처리비용은 높지만 문제는 깔끔하게 처리가 될것이다.
하지만 우리 프로젝트는 Stage마다 Scene을 재 로드 해서 사용하기로 했으나 , 이렇게되면
최적화에 좋지 않아 고민 중이다.
2.Scene 로드 할때마다 ObjectPool을 비우지만 Stage 로드시에는 비우지 않기
Scene로드 시에만 ObjectPool을 비우고 Stage 에서는 생성되어있는 ObjectPoll을 재활용 하여 다음 Stage로 넘어갈떄 비동기로 데이터 세팅을 하는싞으로 할지 고민 중이다.
결론은 Scene 재로드는 구현을 해야되기에 비우는 구조를 설계를 해야만 한다.