오브젝트를 미리 생성 후에 사용해서 재사용 할 수 있도록 보관해두는 것.
저장된 오브젝트를 불러오는 함수
public GameObject GetObject(){ }
저장위치로 오브젝트를 다시 돌려놓는 함수
public void ReturnObject(){ }
자주 생성이 되거나 삭제가 되는 오브젝트에 주로 사용된다.
public T GetObject<T>(string name) where T : Component
{
if (!pools.ContainsKey(name))
{
return null;
}
if (pools[name].Count > 0)
{
GameObject go = pools[name].Dequeue();
go.SetActive(true);
return go.GetComponent<T>();
}
else
{
//풀이 비어있으면(남은 오브젝트가 없으면)
GameObject go = Instantiate(objList.Find(obj => obj.name == name));
go.SetActive(true);
return go.GetComponent<T>();
}
}
(260629_1)