티스토리 뷰

반응형

Unity에서 오브젝트 풀링(Object Pooling)이란 오브젝트를 미리 만들어 쌓아둔 후 필요할 때 꺼내서 사용하고 다 사용했으면 다시 넣어두는 방식을 뜻한다.

 

이러한 오브젝트 풀링을 사용하는 이유는 Unity에서 오브젝트를 생성하여 메모리를 할당하고 리소스를 초기화하거나 오브젝트를 파괴하여 가비지(Garbage)가 생기고 이런 가비지가 모여 가비지 컬렉터가 동작함으로 인해서 성능 저하가 발생할 수 있고 이러한 문제를 최대한 배제하여 성능을 높이기 위해서다.

 

동작 방식을 간단하게 설명하면 최초 오브젝트를 담기 위한 오브젝트 풀을 생성하고 오브젝트 풀에 최소한으로 사용할 오브젝트를 생성하여 담아둔다. 그리고 필요할 때 꺼내어 사용하고 다 사용했을 때는 오브젝트 풀에 넣는다. 만약 오브젝트 풀이 비어있는데 오브젝트를 꺼내려 할 때 새로운 오브젝트를 생성한 후 오브젝트를 넘겨준다. 이때 생성된 오브젝트를 다 사용하여 오브젝트 풀에 넣을 때 파괴하거나 하지 않고 그대로 넣는다.

 

오브젝트 풀링의 단점으로는 미리 만들어 둔 상태에서 파괴하지 않고 계속 재사용하는 것이기 때문에 불필요하게 많은 메모리를 사용하는 경우가 발생할 수 있다는 것이다.

 

2021 버전 이후에는 Unity에서 제공하는 UnityEngine.Pool을 통해서 오브젝트 풀링을 사용할 수 있다.

반응형
댓글
반응형
최근에 올라온 글
Total
Today
Yesterday
글 보관함
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31