ObjectPooler.cs
Инициализируем пул
создаём пустой GameObject
из которого мы будем создавать объекты контейнеры
для каждого объекта в objectInfo
создаём контейнер
присваиваем ему имя
создаём пул
добавляем его в Dictionary
создаём объект с помощью созданного метода InstantiateObject
добавляем в очередь объектов
после всего удаляем emptyGo
private void InitPool()
{
pools=new Dictionary<ObjectInfo.ObjectType,Pool>();
var emptyGO=new GameObject();
foreach (var obj in objectsInfo)
{
var container=Instantiate(emptyGO,transform,false);
pools[obj.Type]=new Pool(container.transform);
for (int i=0;i<obj.StartCount;i++)
{
var go=InstatiateObject(obj.Type,container.transform);
pools[obj.Type].Objects.Equerue(go);
}
}
Destroy(emptyGO);
}