GoW2 에서는 사용되는 효과를 효율적으로 사용하기 위한 클래스이다.
효과와 관련된 인스턴스를 미리 여러개 할당하여 놓고 (캐싱) 재활용하는 방식의 도움 클래스라고 할 수 있다.
언리얼엔진3 에서 생성/소멸 관련 함수를 빈번히 호출하는 것을 가급적 피하라고 UDN 문서에서는 명시하고 있다.
때문에 이 루틴을 적극적으로 활용하는 것이 프레임 향상에 도움이 되겠다.
GearObjectPool 이 캐싱해 놓는 대상은 다음과 같다.
위 리스트가 핵심이고 별 중요치 않은 것들로는 아래와 같은것들도 있다.
간략한 스샷 한장
위의 구성 중에 Emitter 를 캐싱해 두는 녀석이 있는데 이 녀석은 내부적으로 두가지를 캐시해 둔다.
Emitter 와 ParticleSystemComponent (이하 PSC) 이다. 이 둘은 같은 기능을 하면서 실질적으로는 다른데 이점을 글로 정리해 둔다.
간단히 말해 Emitter 는 PSC 까지 포함하고 있다고 생각하면 된다.
GearObjectPool 에서 캐시해둔 Emitter 를 얻어올 땐 위치와 회전값까지 지정하지만 PSC 는 그냥 객체만 얻어온다. 얻어온 후 그것을 어떠한 Actor 에게 붙이는 지는 순전히 프로그래머의 몫이다.
GearObjectPool 이 다루는 객체들을 거의 비슷하게 관리한다.
보시다시피 순차적으로 모두 사용하면 다시 처음부터 사용하는 방식이다.
Decal 은 약간 다른 방식으로 관리하는데 방식은 다음과 같다.