public void CreatePool(GameObject prefab, int poolSize) { int poolKey = prefab.GetInstanceID (); if (!poolDictionary.ContainsKey (poolKey)) { poolDictionary.Add (poolKey, new Queue<ObjectInstance> ()); GameObject poolHolder = new GameObject (prefab.name + " pool"); poolHolder.transform.parent = transform; for (int i = 0; i < poolSize; i++) { ObjectInstance newObject = new ObjectInstance(Instantiate (prefab) as GameObject); poolDictionary [poolKey].Enqueue (newObject); newObject.SetParent (poolHolder.transform); } } }
private void Start() { _poolManager = ServiceLocator.Resolve <PoolManager>(); _poolManager.CreatePool(UnitForvard, CountUnitForward); _poolManager.CreatePool(UnitDiagonal, CountUnitDiagonal); _poolManager.CreatePool(UnitFriend, CountUnitFriend); }