using UnityEngine; using System; public class Core : MonoBehaviour, IDamageable { [SerializeField] private float maxHealth = 100f; private float _currentHealth; // 체력이 변경될 때 UI 등에 알리기 위한 이벤트 (Observer 패턴) public static event Action OnHealthChanged; public static event Action OnCoreDestroyed; void Awake() => _currentHealth = maxHealth; public void TakeDamage(float amount) { _currentHealth -= amount; OnHealthChanged?.Invoke(_currentHealth / maxHealth); if (_currentHealth <= 0) OnCoreDestroyed?.Invoke(); } }