예제 #1
0
        /// <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;
            }
        }
예제 #2
0
 /// <inheritdoc cref="ExecuteRemoveListener(string, PoolEventType, PoolAction)"/>
 public static void RemoveListener(string id, PoolEventType evt, PoolAction target)
 {
     Instance.ExecuteRemoveListener(id, evt, target);
 }
예제 #3
0
 /// <inheritdoc cref="ExecuteRemoveListener(string, PoolEventType, PoolAction)"/>
 public static void RemoveListener(Enum idEnum, PoolEventType evt, PoolAction target)
 {
     Instance.ExecuteRemoveListener(idEnum.ToString(), evt, target);
 }