using UnityEngine; // 攻撃の的になる最小構成の敵 [RequireComponent(typeof(DamageReceiver))] public class Enemy : MonoBehaviour { [Tooltip("この敵の体力を表示するゲージ")] [SerializeField] private HealthGauge healthGauge; private DamageReceiver _damageReceiver; private void Awake() { _damageReceiver = GetComponent(); } private void OnEnable() { _damageReceiver = GetComponent(); _damageReceiver.Damaged += OnDamaged; _damageReceiver.Healed += OnHealed; } private void OnDisable() { _damageReceiver.Damaged -= OnDamaged; _damageReceiver.Healed -= OnHealed; } private void Update() { if (_damageReceiver.IsDead) Destroy(gameObject); } private void OnDamaged(int damage, int maxHealth) { healthGauge.TakeDamage((float)damage / maxHealth); } private void OnHealed(int heal, int maxHealth) { healthGauge.Heal((float)heal / maxHealth); } }