コード例 #1
0
        public void ReturnToPool()
        {
            PoolEvent.Fire(this);

            if (Pool != null)
            {
                Pool.Push(this);
            }
            else
            {
                Destroy(gameObject);
            }
        }
コード例 #2
0
        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;
            }
        }
コード例 #3
0
 public ObjectHistoryEvent(PoolEvent poolEvt)
 {
     stacktrace = System.Environment.StackTrace;
     poolEvent  = poolEvt;
     frameCount = Time.frameCount;
 }
コード例 #4
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>
 public static void RemoveListener(string id, PoolEvent evt, PoolAction target)
 {
     Instance.ExecuteRemoveListener(id, evt, target);
 }