23 lines
1.5 KiB
C#
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);
|
|
}
|