스킬마다 별도의 콜라이더를 생성하지 않고, 하나의 오버랩 이벤트에서 CurrentActiveHitBoxSkill 상태값에 따라 로직을 분기했습니다. 이를 통해 불필요한 컴포넌트 생성을 막아 메모리를 최적화하고, 데미지 공식 관리를 일원화하여 유지보수성이 높은 모듈형 구조를 설계했습니다.

//Boss1.cpp

void ABoss1::OnHitBoxOverlap(...)
{
    //... 유효성 검사 ...

    float DamageToApply = 0.f;

    //단일 히트박스 컴포넌트 재사용 (Component Reuse)
    //현재 활성화된 스킬 타입(Enum)에 따라 데미지 계수 차등 적용
    switch (CurrentActiveHitBoxSkill)
    {
    case EBossSkillHitBox::DashCharge:
        DamageToApply = DashChargeDamage;
        break;

    case EBossSkillHitBox::SparkWave:
        DamageToApply = SparkWaveDamage;
        break;

    case EBossSkillHitBox::SpinAttack:
        DamageToApply = SpinAttackDamage; // 광역 판정
        break;
    
    //... 기타 스킬 케이스 ...
    }

    //최종 데미지 적용
    if (UPlayerDamageComponent* PlayerDamage = PlayerPawn->FindComponentByClass<UPlayerDamageComponent>())
    {
        PlayerDamage->DealDamage(DamageToApply, this);
    }
}