public void Leave(Entity entity) { if (base.Remove(entity)) { GameObjectRemoved?.Invoke(this, entity); } }
private void UpdateEntitiesCollection() { if (_toAdd.Count > 0) { foreach (var entity in _toAdd.Where(entity => !_entities.Contains(entity))) { _entities.Add(entity); GameObjectAdded?.Invoke(entity); } _toAdd.Clear(); } if (_toRemove.Count > 0) { foreach (var entity in _toRemove) { if (_entities.Remove(entity)) { GameObjectRemoved?.Invoke(entity); } } _toRemove.Clear(); } }