/// <summary> /// Per ogni struttura crea i prefab degli oggetti e se li salva in una lista /// </summary> void PopulatePool() { for (int i = 0; i < pooledData.Quantity; i++) { IPoollable p = InstantiateCollectables(); avaiableObjects.Add(p); p.ToggleObject(false); } }
/// <summary> /// Controlla se è presente un collectable disponibile, lo sposta dalla lista dei disponibili a quella dei non disponibili, /// e lo restituisce. (Se la lista è a zero, crea un nuovo collectable) /// </summary> /// <returns></returns> public T GetFirstCollectable() { IPoollable obj = null; if (avaiableObjects.Count > 0) { obj = avaiableObjects[0]; unavaiableObjects.Add(obj); avaiableObjects.Remove(obj); } else { obj = InstantiateCollectables(); } obj.ToggleObject(true); return((T)obj); }