using UnityEngine; [System.Serializable] // 体力の値とダメージ計算を管理する public class Health { [Tooltip("最大体力")] [SerializeField] private int maxHealth = 10; // 現在の体力 public int CurrentHealth { get; private set; } // 最大体力 public int MaxHealth => maxHealth; // 体力が0以下なら死亡扱い public bool IsDead => CurrentHealth <= 0; public void Reset() { CurrentHealth = maxHealth; } public void TakeDamage(int damage) { // 0以下のダメージや死亡後のダメージは無視する if (damage <= 0 || IsDead) return; CurrentHealth = Mathf.Max(CurrentHealth - damage, 0); } public void Heal(int heal) { if (heal <= 0 || IsDead) return; CurrentHealth = Mathf.Min(CurrentHealth + heal, maxHealth); } }