개요
유니티 오브젝트 생성(Instantiate)과 삭제(Destroy)시 가비지 콜렉터를 호출합니다. 오브젝트 풀링은 오브젝트를 미리 만들어 놓고 활성/비활성 으로 재상용하여 최적화하는 방법입니다.
아래 코드에서는 풀 사이즈를 정해놓고 배열로 구현했습니다.
리스트를 통해 구현하고 풀사이즈를 조금씩 늘려서 사용하기도 합니다.
(풀 사이즈보다 더 많은 수의 객체를 필요로하면 조금씩 풀 사이즈를 늘린다)
객체를 다 사용하면 파괴하는 대신 비활성화 해주면 됩니다.
코드
public GameObject objPrefab;
public int poolSize;
private int poolIndex;
private GameObject[] pool;
void InitPool()
{
pool = new GameObject[poolSize];
poolIndex = 0;
for (int i = 0; i < poolSize; i++)
{
GameObject obj = Instantiate(objPrefab);
obj.SetActive(false);
pool.Add(obj);
}
}
void MakeObj()
{
pool[poolIndex].SetActive(true);
if (++poolIndex >= sonCubePoolSize)
{
poolIndex = 0;
}
}
'이전 게시물들 > 유니티' 카테고리의 다른 글
ToBeCuBe에 사용된 옵션 세팅 (0) | 2020.04.19 |
---|---|
플렛폼 구분 (0) | 2020.04.19 |
스와이프와 터치 (0) | 2020.04.18 |
화면 비율, 해상도 레터박스(필러박스)로 해결하기 (0) | 2020.04.18 |
유니티 Google Play Store 앱 등록, GPGS, AdMob 추가 순서 (0) | 2020.04.08 |