Пример #1
0
 private IEnumerator LoopMulti()
 {
     while (true)
     {
         Vector2         direction       = (target.transform.position - this.transform.position).normalized;
         MultiProjectile multiProjectile = multiProjectilePool.Allocate();
         multiProjectile.transform.position = this.transform.position;
         multiProjectile.Init(multiProjectileModel);
         multiProjectile.OnBlowUp += MultiProjectile_OnBlowUp;
         multiProjectile.gameObject.SetActive(true);
         multiProjectile.Force(direction);
         yield return(new WaitForSeconds(fireRate));
     }
 }
Пример #2
0
    private void MultiProjectile_OnBlowUp(List <ProjectileModel> projetileModels, MultiProjectile multiProjectile)
    {
        multiProjectile.OnBlowUp -= MultiProjectile_OnBlowUp;
        multiProjectilePool.Release(multiProjectile);

        foreach (ProjectileModel model in projetileModels)
        {
            Projectile projectile = projectilePool.Allocate();
            projectile.transform.position = multiProjectile.transform.position;
            projectile.Init(model);
            projectile.OnBlowUp += Projectile_OnBlowUp;
            projectile.gameObject.SetActive(true);
            projectile.Force(model.Direction);
        }
    }