protected override void Shoot(TargetPoint target) { base.Shoot(target); ProjectileBase projectile = pool.Get(); projectile.gameObject.SetActive(true); projectile.FireBullet(this, target, projectileSpeed); EventHandler handler = null; handler = (sender, e) => { pool.ReturnToPool(projectile); projectile.ReturnToPool -= handler; }; projectile.ReturnToPool += handler; }