Files
WhiteMan_Unity2D/Assets/02_Scripts/Combat/IDamageable.cs
2026-05-19 10:51:56 +09:00

23 lines
1.5 KiB
C#

using UnityEngine;
// ============================================================================
// IDamageable
// ----------------------------------------------------------------------------
// "데미지를 받을 수 있는 무언가"를 표현하는 인터페이스.
// AttackHitbox가 트리거에 들어온 콜라이더에서 이 인터페이스를 찾아 TakeDamage 호출.
// Enemy, Player 등 어떤 GameObject든 이 인터페이스만 구현하면 같은 공격 시스템으로 피격 가능.
// ----------------------------------------------------------------------------
// 매개변수:
// amount — 데미지 양
// hitVelocity — 넉백 속도 (피해자에게 적용할 vx/vy)
// hitReactionAnimationState — 피격 모션 애니메이션 State 이름 (null 가능)
// hitTargetPosition — 피격 시 위치 보정 목표 (null이면 보정 안 함)
// correctHitTargetY — 위 위치 보정에서 Y도 보정할지 (false면 X만)
// hitPositionSolidMask — 위치 보정 시 끼이지 않게 검사할 솔리드 레이어
// hitPositionCorrectionDuration — 위치 보정 보간 시간 (0이면 즉시 스냅)
// ============================================================================
public interface IDamageable
{
void TakeDamage(int amount, Vector2 hitVelocity = default, string hitReactionAnimationState = null, Vector2? hitTargetPosition = null, bool correctHitTargetY = false, int hitPositionSolidMask = 0, float hitPositionCorrectionDuration = 0f);
}