Blueprint Interface

계약 하나로 여러 클래스의 구현을 호출한다

발사체는 대상의 클래스 이름을 모르고, BPI_Damageable 계약을 구현했는지만 확인한 뒤 같은 Message를 보낸다.

Caller

BP_Projectile

Event Hit에서 Other Actor를 얻고 인터페이스 구현 여부를 검사한다.

검사

Does Implement Interface

Other Actor가 BPI_Damageable을 구현했는지 확인한다.

분기

Branch True

구현한 대상만 다음 호출 경로로 보낸다.

호출

ApplyDamage Message

같은 메시지가 실제 대상의 구현으로 전달된다.

Polymorphism

각 클래스 구현 실행

호출 코드는 하나지만 실행되는 로직은 대상 클래스마다 달라진다.

Implementer

BP_Enemy

체력에서 대미지를 빼고 사망 상태를 검사한다.

계약BPI_Damageable 구현
실행Enemy 전용 피격 로직
Implementer

BP_PlayerCharacter

체력을 줄이고 UI 갱신, 무적 시간 같은 플레이어 규칙을 적용한다.

계약BPI_Damageable 구현
실행Player 전용 피격 로직
Implementer

BP_DestructibleBox

내구도를 줄이고 0이 되면 파괴 이펙트와 아이템 드롭을 실행한다.

계약BPI_Damageable 구현
실행Object 전용 파괴 로직