//--------------------------------------------------
    /// <summary>
    /// 弾生成処理
    /// </summary>
    /// <param name="createrPosition">生成者のポジション</param>
    /// <param name="createTarget">生成するゲームオブジェクト</param>
    public void Shot(Vector2 createrPosition, Transform createTarget = null)
    {
        _nowRateTime--;

        if (_nowRateTime <= 0 && _bulletPrefab != null)
        {
            foreach (var position in _createPosition)
            {
                BulletBase data = null;
                foreach (var bullet in _bullets)
                {
                    if (bullet.gameObject.activeSelf == false)
                    {
                        bullet.gameObject.SetActive(true);
                        data = bullet;
                        break;
                    }
                }

                if (data == null)
                {
                    data            = Instantiate(_bulletPrefab, createTarget).GetComponent <BulletBase>();
                    data.CreaterTag = this.gameObject.tag;
                    _bullets.Add(data);
                }

                data.SetPosition(createrPosition + position);
            }
            _nowRateTime = _fireRate;
        }
    }
Пример #2
0
 public override void Shoot()
 {
     if (m_SnowBallPool != null)
     {
         GameObject bulletType = m_SnowBallPool.Rent(false);
         if (bulletType != null)
         {
             BulletBase bullet = bulletType.GetComponent <BulletBase>();
             bullet.SetPosition(SpawnPoint);
             bullet.gameObject.SetActive(true);
             bullet.Shoot();
         }
     }
 }