Beispiel #1
0
        public override void MainAction()
        {
            if (!_readyToShoot)
            {
                return;
            }
            if (_clips.Count() == 0 || _clips.First().AmmoCount == 0)
            {
                return;
            }

            base.MainAction();

            for (int i = 0; i < _bulletInShot; ++i)
            {
                Ammo    am              = Instantiate(ammo, _shotPosition.position, _shotPosition.rotation);
                float   xRandom         = UnityEngine.Random.Range(-0.2f, 0.2f);
                float   yRandom         = UnityEngine.Random.Range(-0.1f, 0.1f);
                float   zRandom         = UnityEngine.Random.Range(-0.2f, 0.2f);
                Vector3 randomDirection = new Vector3(xRandom, yRandom, zRandom);
                am.AddForce((_shotPosition.transform.forward + randomDirection) * _force);
            }

            _readyToShoot = false;

            Invoke(ReadyShoot, _rechargeTime);
        }
Beispiel #2
0
        public override void MainAction()
        {
            if (!_readyToShoot)
            {
                return;
            }
            if (_clips.Count() == 0 || _clips.First().AmmoCount == 0)
            {
                return;
            }

            base.MainAction();

            Ammo am = Instantiate(ammo, _shotPosition.position, _shotPosition.rotation);

            am.AddForce(_shotPosition.transform.forward * _force);
            _readyToShoot = false;

            Invoke(ReadyShoot, _rechargeTime);
        }