Пример #1
0
 public void RemoveEventListener(IEcsFilterEventListener eventListener)
 {
     for (var i = 0; i < _eventListenersCount; i++)
     {
         if (_eventListeners[i] == eventListener)
         {
             _eventListenersCount--;
             // cant fill gap with last element due listeners order is important.
             Array.Copy(_eventListeners, i + 1, _eventListeners, i, _eventListenersCount - i);
             break;
         }
     }
 }
Пример #2
0
        public void AddEventListener(IEcsFilterEventListener eventListener)
        {
#if DEBUG
            for (var i = 0; i < _eventListenersCount; i++)
            {
                if (_eventListeners[i] == eventListener)
                {
                    throw new Exception("Listener already subscribed.");
                }
            }
#endif
            if (_eventListeners.Length == _eventListenersCount)
            {
                Array.Resize(ref _eventListeners, _eventListenersCount << 1);
            }
            _eventListeners[_eventListenersCount++] = eventListener;
        }