[Function] Object Pooling

sonsazang

·

2021. 6. 26. 09:21

2021-06-24

깃헙(sonsazang.github.io) 블로그를 사용하다 다시 velog로 돌아왔습니다. -> 티스토리 입문! 

유니티를 공부한 지 어연 3~4개월 정도 된 것 같다.
이제 공부한 것을 정리하기 위해 티스토리를 시작하게 되었습니다.

본문으로 들어가기에 앞서 필자의 개발 환경은 Unity + C# + VR입니다.
해당 글의 출처는 위키백과, 인생 유니티 VR/AR 교과서를 참고했습니다.


오늘의 주제: 오브젝트 풀링(Object Pooling)

 

유니티에서 오브젝트 풀링을 사용하는 이유 ?

콘텐츠의 쾌적한 진행이 어려워져서 인지 부조화가 생기는 것을 방지하기 위해 사용합니다.

 

인지 부조화(Cognitive Dissonance) ?

자신의 태도와 행동이 일관되지 않고 모순되어 양립할 수 없는 상태이다.
쉽게 말하면 그냥 VR을 통해 멀미가 느껴진다 정도라고 생각하시면 되겠습니다.

 

오브젝트 풀(Object Pool) ?

다시 돌아와서 인지 부조화를 줄이기 위해서는
초당 프레임률(Frame Per Second)인 FPS를 높이는 것이 관건입니다.
이런 FPS를 높이는 최적화 요소 중 하나인
메모리를 효율적으로 관리하기 위해 사용하는 것이 오브젝트 풀 입니다.

 

그림으로 정리하는 오브젝트 풀링

 

1) 오브젝트 풀 이라는 수영장에 튜브를 20개 미리 만들어두고 눈에 보이면 안 되니까 숨겨둡니다.

2) 튜브가 필요할 때 수영장에서 튜브를 하나 빼 오고 눈에 보이게 만듭니다.

3) 튜브를 사용한 후에는 눈에 안 보이게 만들고 다시 오브젝트 풀에 저장합니다.

사실 그림은 거들뿐!

오브젝트 풀링 정리 끝!