internal void Dispatch() { if (!this.IsAlive) { Destroy(); return; } int index = 0; while (index < _listenerList.Count) { ListenerObject listener = _listenerList[index]; if (listener.IsAlive) { listener.Callback(this); index++; } else { UnregisterEventListenerObject(listener); } } if (_listenerList.Count <= 0) { Destroy(); } }