コード例 #1
0
 public void Leave(Entity entity)
 {
     if (base.Remove(entity))
     {
         GameObjectRemoved?.Invoke(this, entity);
     }
 }
コード例 #2
0
ファイル: World.cs プロジェクト: ashenBlade/StarWing
        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();
            }
        }