コード例 #1
0
ファイル: BossAI.cs プロジェクト: MasterT5k/2D-Space-Shooter
    void LaserBeams(bool turnOn)
    {
        if (_activeEmitters <= 0)
        {
            OnStopLoopingSFX?.Invoke();
            _inFinalStage = true;
            return;
        }

        if (turnOn == true)
        {
            OnPlayLoopingSFX?.Invoke(_laserBeamClip);
            for (int i = 0; i < _beamEmitterList.Count; i++)
            {
                GameObject obj = _beamEmitterList[i].gameObject;
                if (obj.activeInHierarchy == true)
                {
                    _beamEmitterList[i].LaserBeams(turnOn);
                }
            }
        }
        else
        {
            OnStopLoopingSFX?.Invoke();
            for (int i = 0; i < _beamEmitterList.Count; i++)
            {
                GameObject obj = _beamEmitterList[i].gameObject;
                if (obj.activeInHierarchy == true)
                {
                    _beamEmitterList[i].LaserBeams(turnOn);
                }
            }
        }
    }
コード例 #2
0
ファイル: BossAI.cs プロジェクト: MasterT5k/2D-Space-Shooter
    void Update()
    {
        if (_activeEmitters <= 0)
        {
            OnStopLoopingSFX?.Invoke();
            _inFinalStage = true;
        }
        else
        {
            CheckEmitters();
        }

        if (_inPosition == false)
        {
            transform.position = Vector2.MoveTowards(transform.position, _finalPosition, _speed * Time.deltaTime);
            if (transform.position == (Vector3)_finalPosition)
            {
                for (int i = 0; i < _beamEmitterList.Count; i++)
                {
                    _beamEmitterList[i].ActivateCollider();
                }
                _inPosition = true;
                _coverShield.SetActive(false);
                StartCoroutine(BossFightCoroutine());
            }
        }
        else
        {
            transform.Rotate(Vector3.forward * _rotSpeed * Time.deltaTime);
        }

        if (_currentState == EnemyState.FiringBeams && _beamsActive == false)
        {
            _beamsActive = true;
            LaserBeams(_beamsActive);
        }
        else if (_currentState == EnemyState.FiringMissiles && Time.time >= _canFire)
        {
            if (_beamsActive == true)
            {
                _beamsActive = false;
                LaserBeams(_beamsActive);
            }
            FireMissiles();
        }
    }