Пример #1
0
    public void ReuseFromPool(GameObject gameObj, Vector3 position, Quaternion rotation)
    {
        int poolKey = gameObj.GetInstanceID();

        if (_poolDictionary.ContainsKey(poolKey))
        {
            PoolObject objectGet = _poolDictionary [poolKey].Dequeue();
            objectGet.Activate(position, rotation);

            _poolDictionary [poolKey].Enqueue(objectGet);
        }
    }
Пример #2
0
 public PoolObject ActivateObject(int id)
 {
     if (id > PoolItems.Count || id < 0)
     {
         Debug.Log("Requesting illegal object with id " + id);
         return(null);
     }
     for (int count = 0; count < _pool[id].Count; ++count)
     {
         PoolObject obj = _pool[id][count];
         if (obj == null)
         {
             Debug.Log("Object does not have a PoolObject script");
             return(null);
         }
         if (!obj.IsActive)
         {
             obj.Reset();
             obj.Activate();
             return(obj);
         }
     }
     return(AddExtraObjectToPool(id));
 }