Files
ProjectMD/Assets/Scripts/GameBase/Core.cs

23 lines
632 B
C#

using UnityEngine;
using System;
public class Core : MonoBehaviour, IDamageable
{
[SerializeField] private float maxHealth = 100f;
private float _currentHealth;
// 체력이 변경될 때 UI 등에 알리기 위한 이벤트 (Observer 패턴)
public static event Action<float> 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();
}
}