2026-05-21 보스추가
This commit is contained in:
@@ -1,19 +1,6 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
// ============================================================================
|
||||
// Health
|
||||
// ----------------------------------------------------------------------------
|
||||
// 순수한 HP 데이터 컴포넌트. 시각 효과/넉백/사망 처리는 일절 안 함.
|
||||
// Enemy, Player 등 어떤 GameObject든 Health 컴포넌트만 추가하면 HP 관리 가능.
|
||||
//
|
||||
// 일반적 사용 흐름:
|
||||
// 1) Enemy/Player가 IDamageable.TakeDamage 받음
|
||||
// 2) 시각 효과(flash) + 넉백 처리
|
||||
// 3) 마지막에 _health.TakeDamage(amount) 호출
|
||||
// 4) Health가 HP 감소 + OnHealthChanged 이벤트 발화 → HP바 등 UI 자동 갱신
|
||||
// 5) HP가 0 되면 OnDied 이벤트 발화 → Enemy가 HandleDeath()로 Destroy 등 처리
|
||||
// ============================================================================
|
||||
public class Health : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private int _maxHealth = 30;
|
||||
@@ -26,8 +13,8 @@ public class Health : MonoBehaviour
|
||||
public bool IsDead => _currentHealth <= 0;
|
||||
|
||||
// ─── 외부 구독용 이벤트 ──────────────────────────────────────────────
|
||||
// OnHealthChanged: (current, max). HP바, 데미지 숫자 표시 등에 사용.
|
||||
// OnDied: 사망 순간 1회만 발화. Enemy.HandleDeath에서 구독.
|
||||
// OnHealthChanged: (current, max). 데미지 숫자 표시 등에 사용.
|
||||
// OnDied: 사망 순간 1회만 발화.
|
||||
public event Action<int, int> OnHealthChanged;
|
||||
public event Action OnDied;
|
||||
|
||||
@@ -50,7 +37,7 @@ public void TakeDamage(int amount)
|
||||
OnDied?.Invoke();
|
||||
}
|
||||
|
||||
// 회복. 죽은 상태에서는 회복 안 됨 (부활 로직은 별도로 만들어야 함).
|
||||
// 회복
|
||||
public void Heal(int amount)
|
||||
{
|
||||
if (amount <= 0 || IsDead) return;
|
||||
|
||||
Reference in New Issue
Block a user