コード例 #1
0
 /// <summary>
 /// 初期化処理
 /// </summary>
 void OnEnable()
 {
     this.transform.LookAt(Camera.main.transform.position);
     m_collider         = GetComponent <Collider>();
     m_collider.enabled = false;
     m_status           = GunEnemyStatus.Idle;
     ResetTimer();
 }
コード例 #2
0
 /// <summary>
 /// プレイヤーの攻撃が当たった時に呼ぶ
 /// Idle 状態(初期状態)に戻す
 /// </summary>
 /// <returns></returns>
 public int Hit()
 {
     ResetTimer();
     m_status = GunEnemyStatus.Idle;
     m_animator.SetTrigger("Hit");
     m_collider.enabled = false;
     m_onHit.Invoke();
     return(m_score);
 }
コード例 #3
0
 /// <summary>
 /// 初期化処理
 /// </summary>
 void OnEnable()
 {
     this.transform.LookAt(Camera.main.transform.position);
     _collider         = GetComponent <Collider>();
     _collider.enabled = false;
     _status           = GunEnemyStatus.Idle;
     ResetTimer();
     _scoreText.text = string.Format("{0:0000000000}", _totalScore);
 }
コード例 #4
0
 /// <summary>
 /// プレイヤーの攻撃が当たった時に呼ぶ
 /// Idle 状態(初期状態)に戻す
 /// </summary>
 /// <returns></returns>
 public int Hit()
 {
     ResetTimer();
     _status = GunEnemyStatus.Idle;
     _animator.SetTrigger("Hit");
     _collider.enabled = false;
     _totalScore      += _score;
     Debug.Log($"{name} got hit. Score: {_totalScore}");
     _scoreText.text = string.Format("{0:0000000000}", _totalScore);
     return(_score);
 }
コード例 #5
0
    void Update()
    {
        _timer += Time.deltaTime;

        switch (_status)
        {
        case GunEnemyStatus.Idle:
            // 時間が経ったら Idle -> Ready に移行する
            if (_timer > _interval)
            {
                ResetTimer();
                _status = GunEnemyStatus.Ready;
                _animator.SetTrigger("Ready");
                _collider.enabled = true;
            }
            break;

        case GunEnemyStatus.Ready:
            // 時間が経ったら発砲し、Idle 状態に移行する
            if (_timer > _fireTime)
            {
                ResetTimer();
                _status = GunEnemyStatus.Idle;
                _animator.SetTrigger("Fire");
                _collider.enabled = false;

                if (_onShoot.GetPersistentEventCount() > 0)
                {
                    _onShoot.Invoke();
                }
                else
                {
                    Debug.LogWarning("発砲時に呼ばれる処理が指定されていません。");
                }
            }
            break;
        }
    }
コード例 #6
0
    void Update()
    {
        m_timer += Time.deltaTime;

        switch (m_status)
        {
        case GunEnemyStatus.Idle:
            if (m_timer > m_interval)
            {
                ResetTimer();
                m_status = GunEnemyStatus.Ready;
                m_animator.SetTrigger("Ready");
                m_collider.enabled = true;
            }
            break;

        case GunEnemyStatus.Ready:
            if (m_timer > m_fireTime)
            {
                ResetTimer();
                m_status = GunEnemyStatus.Idle;
                m_animator.SetTrigger("Fire");
                m_collider.enabled = false;

                if (m_onShoot.GetPersistentEventCount() > 0)
                {
                    m_onShoot.Invoke();
                }
                else
                {
                    Debug.LogWarning("発砲時に呼ばれる処理が指定されていません。");
                }
            }
            break;
        }
    }