public void Return(PoolObjectController controller) { foreach (var c in ObjectPoolUtils.ResolveNestedPoolObjects(controller)) { poolDictionary[c.Id].Return(c); } }
protected virtual void Awake() { _poolObjectController = GetComponent <PoolObjectController>(); if (_poolObjectController == null) { Debug.LogWarning("PoolManagedBehaviour must be instantiated by ObjectPool."); } }
public static IEnumerable <PoolObjectController> ResolveNestedPoolObjects(PoolObjectController controller) { return(controller.GetComponentsInChildren <PoolObjectController>() // DeepFirstSearch .Where(c => c.IsRenting) .Reverse()); }