코어, 벽, 적의 생성 및 충돌, 데미지 판정
This commit is contained in:
23
Assets/Scripts/GameBase/Core.cs
Normal file
23
Assets/Scripts/GameBase/Core.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user