유니티 Object Pooling


유니티 Object Pooling

유니티 프로젝트에서 오브젝트를 동적으로 생성하고 파괴해야하는 기능이 필요로 하는 곳이 많다. 예를 들어 총을 쏠 때 생성되는 총알이나, 특정 지형을 이동할 때 생성되는 탈 것등이 있다. 이러한 기능들은 필수적이지만 자원을 많이 잡아먹는 요인들 중 하나이다. 오브젝트를 생성하면 새로운 메모리에 리소스를 할당한 후 초기화 등의 작업이 이루어지고, 오브젝트를 파괴하면 가비지 컬렉팅이 실행되어 프레임이 드랍될 수 있다. 그래서 조금 더 최적화하는 방향으로 이러한 기능을 구현할 수 있는 방법으로 나온 것이 오브젝트 풀링이다. 오브젝트 풀링의 개념 오브젝트 풀링 또한 기존의 객체 지향에서 사용하는 풀링에서 나온것이기 때문에 개념이 크게 다르지 않다. 사용할 오브젝트를 담을 pool을 하나 생성한 뒤 풀링할 오브젝트들을 pool에 저장해 관리한다. 외부에서 해당 오브젝트가 필요하다면 풀에서 오브젝트를 꺼내 사용하고, 사용이 끝나면 다시 풀에 돌려주는 방식으로 동작을 한다. 만약 풀에 있는 모든 ...


#pooling #오브젝트풀링 #유니티풀링 #최적화 #풀링

원문링크 : 유니티 Object Pooling