https://www.youtube.com/watch?v=jvJ1Vd7PGwk&list=PL412Ym60h6uufFJlxsKcYkOtRu-PIsLuA&index=6


Objectpool 패턴

수가 많은 오브젝트 다룰 때 씀


 

 

 

Pool 이라는 박스 안에 객체들을 담는 것임

오브젝트 활성화 / 비활성화를 응용함

Destroy 쓰지 말기
지저분해짐

끊김 현상
Hiccup 딸꾹질 같은 버그
GC Spike 쓰레기 오버되서 터짐 현상
을 예방하기 위해 오브젝트 풀링을 사용

주로 로딩화면에서 미리 생성

 

 

+

 



코딩 속 원리 :


정렬방식은 stack 을 쓰기도 함
후입선출



next instance 에서는 true, 활성화
return 에서는 false , 비활성화


+


2021년부턴 오브젝트 풀링이
정식 문법으로 등재됨

public ObjectPool<T0> (Func<T> createFunc, Action<T> actionOnGet, Action<T> actionOnRelease, Action<T> actionOnDestroy, bool collectionCheck, int defaultCapacity, int maxSize);

자세한 링크

https://docs.unity3d.com/6000.2/Documentation/ScriptReference/Pool.ObjectPool_1-ctor.html

 

이 건 인터페이스 , 겉 껍데기라서 내가 직접 속을 채워 넣어줘야 한다

 

 

 

여기서 짚고 넘어갈 거

 

Update 에서

objectPool.Get() 가져오고 , 활성화 작업

 

Deactivate() 에서

objectPool.Realease() 함 , 풀로 다시 되돌리는 비활성화작업

 

 

 

반응형
Posted by 이름이 익명
: