private void OnAsteroidDestroyed(BaseEnemyController enemy)
        {
            var asteroid = _asteroids[enemy.ID];

            asteroid.OnEnemyKilled -= OnAsteroidDestroyed;
            if (asteroid.IsActive)
            {
                _pool.ReturnKilledToPool(asteroid);
            }

            _pointModel.AddPoints(_pointPerEnemy);

            _coroutines[enemy.ID].Dispose();
        }
 private void ManagePool(BaseEnemyController enemy)
 {
     if (!_asteroids.Contains(enemy))
     {
         _asteroids.Add(enemy);
         var coroutine = ReturnToPool(enemy.ID, _spawnTime).
                         ToObservable().Subscribe();
         _coroutines.Add(coroutine);
         enemy.InjectPlayerTransform(_playerTransform);
     }
     else
     {
         _coroutines[enemy.ID] = ReturnToPool(enemy.ID, _spawnTime).
                                 ToObservable().Subscribe();
     }
 }