using UnityEngine; // プレイヤーの体力や状態を管理する [RequireComponent(typeof(DamageReceiver))] public class Player : MonoBehaviour { private DamageReceiver _damageReceiver; [Tooltip("プレイヤーの体力を表示するゲージ")] [SerializeField] private HealthGauge healthGauge; 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 OnDamaged(int damage, int maxHealth) { healthGauge.TakeDamage((float)damage / maxHealth); } private void OnHealed(int heal, int maxHealth) { healthGauge.Heal((float)heal / maxHealth); } }