/// <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> private void ExecuteRemoveListener(string id, PoolEventType evt, PoolAction target) { if (!_pools.ContainsKey(id)) { Debug.LogWarning($"No {id} pool found."); return; } var pool = _pools[id]; if (evt == PoolEventType.OnAcquire) { pool.onPoolableAcquire -= target; } else { pool.onPoolableRelease -= target; } }
/// <inheritdoc cref="ExecuteRemoveListener(string, PoolEventType, PoolAction)"/> public static void RemoveListener(string id, PoolEventType evt, PoolAction target) { Instance.ExecuteRemoveListener(id, evt, target); }
/// <inheritdoc cref="ExecuteRemoveListener(string, PoolEventType, PoolAction)"/> public static void RemoveListener(Enum idEnum, PoolEventType evt, PoolAction target) { Instance.ExecuteRemoveListener(idEnum.ToString(), evt, target); }