protected void DoRecycle(IPoolUser obj) { var token = obj.Token; Stack<IPoolUser> stack = null; if (!pool.TryGetValue(token, out stack)) { stack = new Stack<IPoolUser>(); pool.Add(token, stack); } stack.Push(obj); }
protected void DoRecycle(IPoolUser obj) { var token = obj.Token; Stack <IPoolUser> stack = null; if (!pool.TryGetValue(token, out stack)) { stack = new Stack <IPoolUser>(); pool.Add(token, stack); } stack.Push(obj); }
// Create pools of the enemies that we have in our container. public void InitializeWithPooler(IPoolManager pooler, int poolSize) { this.pooler = pooler; // Instantiate the enemies and set up their properties. for (int i = 0; i < enemyPrefabs.Length; i++) { PooledObject[] poolContainer = pooler.CreatePool(enemyPrefabs[i], poolSize); foreach (PooledObject poolObj in poolContainer) { // Initialize features of the enemies. IScore scorer = poolObj.GetComponent <IScore>(); if (scorer != null) { scorer.Initialize(scoreManager); } IPoolUser poolUser = poolObj.GetComponent <IPoolUser>(); if (poolUser != null) { poolUser.InitializeWithPooler(pooler, poolSize); } } } }
// Create pools of the projectiles that we have in our container. public void InitializeWithPooler(IPoolManager pooler, int poolSize) { this.pooler = pooler; if (poolSize <= 0 || projectileTypes == null || projectileTypes.Length == 0) { return; } for (int i = 0; i < projectileTypes.Length; i++) { PooledObject[] poolContainer = pooler.CreatePool(projectileTypes[i], 5); foreach (PooledObject poolObj in poolContainer) { IPoolUser poolUser = poolObj.GetComponent <IPoolUser>(); if (poolUser != null) { poolUser.InitializeWithPooler(pooler, 5); } } } SetType(0); }
public void Recycle(IPoolUser obj) { DoRecycle(obj); }