public void ReturnToPool() { PoolEvent.Fire(this); if (Pool != null) { Pool.Push(this); } else { Destroy(gameObject); } }
private void ExecuteRemoveListener(string id, PoolEvent evt, PoolAction target) { if (!_pools.ContainsKey(id)) { Debug.LogWarning("No {id} pool found."); return; } var pool = _pools[id]; if (evt == PoolEvent.OnAquire) { pool.onPoolableAquire -= target; } else { pool.onPoolableRelease -= target; } }
public ObjectHistoryEvent(PoolEvent poolEvt) { stacktrace = System.Environment.StackTrace; poolEvent = poolEvt; frameCount = Time.frameCount; }
/// <summary> /// Removes a listener of <paramref name="id"/>'s <paramref name="evt"/> /// </summary> /// <param name="id">The poolable ID</param> /// <param name="evt">The event type</param> /// <param name="target">The callback method to be removed</param> public static void RemoveListener(string id, PoolEvent evt, PoolAction target) { Instance.ExecuteRemoveListener(id, evt, target); }