{ 유니티 } 오브젝트 풀링 (ObjectPool)

열정적인 나무늘보 ㅣ 2025. 2. 10. 13:00

오브젝트 풀링?

 

오브젝트를 매번 생성하고 파괴하는 대신에, 미리 만들어둔 오브젝트를 재사용하여 성능을 최적화하는 기법이다.

오브젝트 풀링 은 주로 총알, 이펙트, 적과 같은 반복적으로 등장하고, 사라지는 오브젝트를 관리하는데 유용하다.

 

 

 

어떻게 사용하지?

 

Unity에서 제공하는 IObjectPool<T> 인터페이스를 이용해 오브젝트 풀링(Object Pooling) 기능을 다룰 수 있다.

 

 

 

 

IObjectPool<T>의 주요 메서드
Get() :                       풀에서 오브젝트를 가져와서 사용
Release(T item) : 사용한 오브젝트를 다시 풀로 반환
Clear() :                    풀을 초기화 ( 모든 오브젝트 제거 )

 

 

 

ObjectPool<T> 클래스

 

IObjectPool<T>의 기본 구현체가 ObjectPool<T> 클래스다.

이 클래스의 생성자는 다음과 같은 구조를 가진다.

public ObjectPool<T>(
    Func<T> createFunc,         // 오브젝트 생성 함수
    Action<T> actionOnGet,      // 풀에서 꺼낼 때 실행할 함수
    Action<T> actionOnRelease,  // 풀로 반환할 때 실행할 함수
    Action<T> actionOnDestroy,  // 풀에서 제거될 때 실행할 함수
    bool collectionCheck,       // 컬렉션 체크 여부 (메모리 관련 최적화)
    int defaultCapacity,        // 기본 저장할 개수
    int maxSize                 // 최대 저장 개수
)

'참고할 만한 내용' 카테고리의 다른 글

{ 유니티 } 제이슨(Json) ?  (0) 2025.03.17
발사체 공식  (0) 2024.02.29
Sprite Settings  (0) 2024.01.25
Coroutine()  (0) 2024.01.11
모바일 게임 해상도(가로)  (0) 2024.01.11