Unity Learn/주니어 프로그래머

6단원 - 프로젝트 최적화 : 오브젝트 풀링

coding-potato 2024. 11. 27. 00:06

 

오브젝트 풀링

  • 반복적으로 생성하고 삭제해야 하는 객체(예: 적, 총알, 파티클 등)를 미리 일정량 생성해두고 재사용(Recycling)하는 방식입니다.
  • 객체를 동적으로 생성하거나 삭제하는 작업은 **성능 비용(메모리 할당 및 가비지 수집)**이 크기 때문에, 이를 줄이고 성능을 향상시키기 위해 사용됩니다.

오브젝트 풀링의 주요 원리

  1. 초기화 단계:
    • 게임 시작 시 일정 수의 객체를 미리 생성하여 풀에 저장합니다.
  2. 사용 단계:
    • 필요할 때 풀에서 사용하지 않는 객체를 꺼내와 활성화하여 사용합니다.
  3. 반환 단계:
    • 사용이 끝난 객체는 삭제하지 않고 풀로 반환하여 다시 사용할 수 있도록 비활성화 상태로 보관합니다.

 

오브젝트 풀링의 장점

  1. 성능 개선:
    • 매번 객체를 생성/삭제하지 않아 메모리 할당과 해제 비용을 줄입니다.
  2. 가비지 컬렉션(GC) 감소:
    • 불필요한 객체 생성/삭제로 인한 GC 호출을 줄여 프레임 드랍을 방지합니다.
  3. 재사용성:
    • 이미 생성된 객체를 재활용하므로 리소스를 절약합니다.

 

유니티에서 오브젝트 풀링 구현

유니티에서 오브젝트 풀링은 직접 구현하거나, Unity에서 제공하는 도구들을 활용할 수 있습니다.

적용 사례

  • 총알 관리: 슈팅 게임에서 플레이어가 발사하는 총알을 풀로 관리.
  • 적 생성: 적이 자주 등장하고 사라지는 경우, 풀에서 적을 관리.
  • 효과(파티클): 폭발, 불꽃 등 자주 사용되는 효과를 관리.