/// <summary> /// 初期化処理 /// </summary> void OnEnable() { this.transform.LookAt(Camera.main.transform.position); m_collider = GetComponent <Collider>(); m_collider.enabled = false; m_status = GunEnemyStatus.Idle; ResetTimer(); }
/// <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); }
/// <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); }
/// <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); }
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; } }
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; } }