2026-05-15 공격과 피격

This commit is contained in:
2026-05-15 15:28:13 +09:00
parent 764bc305f7
commit ec353d0fd4
81 changed files with 879 additions and 57 deletions

View File

@@ -0,0 +1,58 @@
using UnityEngine;
[RequireComponent(typeof(Collider2D))]
public class Enemy : MonoBehaviour, IDamageable
{
[Header("Stats")]
[SerializeField] private int _maxHealth = 30;
[Header("Hit Feedback")]
[SerializeField] private float _hitFlashDuration = 0.1f;
[SerializeField] private Color _hitFlashColor = Color.red;
private int _currentHealth;
private SpriteRenderer _spriteRenderer;
private Color _originalColor;
private float _flashTimer;
private void Awake()
{
_currentHealth = _maxHealth;
_spriteRenderer = GetComponentInChildren<SpriteRenderer>();
if (_spriteRenderer != null)
_originalColor = _spriteRenderer.color;
}
private void Update()
{
if (_flashTimer > 0f)
{
_flashTimer -= Time.deltaTime;
if (_flashTimer <= 0f && _spriteRenderer != null)
_spriteRenderer.color = _originalColor;
}
}
public void TakeDamage(int amount)
{
if (_currentHealth <= 0) return;
_currentHealth -= amount;
Debug.Log($"{name} 피격: -{amount} (HP: {_currentHealth}/{_maxHealth})");
if (_spriteRenderer != null)
{
_spriteRenderer.color = _hitFlashColor;
_flashTimer = _hitFlashDuration;
}
if (_currentHealth <= 0)
Die();
}
private void Die()
{
Debug.Log($"{name} 사망");
Destroy(gameObject);
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 945e2c8fc675cb64c97b4eff6d2e8d56