private void ReturnElementActions(PoolableElement element) { element.Unsubscribe(); element.OnReturned(); element.Deactivate(); element.transform.SetParent(holder.transform, false); }
public T RetrieveElement <T>(Action <T> preCreate = null) where T : PoolableElement { PoolableElement element = (inactiveElements.Count == 0) ? Instantiate() : GetFromInactiveElements(); RetrieveElementActions(element as T, preCreate); return(element as T); }
public void AddElementPrefab(PoolableElement element) { elementPrefabs.Add(element); }
/// <summary> /// Returns element to Pool. /// </summary> public static void ReturnElement(PoolableElement element) { pools[element.GetType()].ReturnElement(element); }
public void ReturnElement(PoolableElement element) { ReturnElementActions(element); activeElements.Remove(element); inactiveElements.Add(element); }