인터페이스 메시지는 구현 여부를 확인한 뒤 계약만 호출한다
플레이어 블루프린트는 대상 액터의 구체 클래스를 몰라도 됩니다.
BPI_Interactable 구현 여부와 메시지 호출 계약만 맞추면 각
액터가 자기 이벤트에서 반응합니다.
대상
Line Trace가 찾은 액터 참조를 상호작용 후보로 잡습니다.
계약
후보가 BPI_Interactable을 구현했는지만 확인합니다.
결과
구현 액터는 이벤트를 실행하고, 미구현 액터는 조용히 지나갑니다.
Interact Message 호출 점검표
| 순서 | 검사 지점 | 블루프린트 신호 | 설계 효과 |
|---|---|---|---|
| 01 | 후보 액터 | Hit Actor |
바라본 대상을 상호작용 후보로만 다루고 클래스 이름은 보지 않습니다. |
| 02 | 구현 여부 |
Does Implement Interface
|
부모 클래스보다 “상호작용 가능”이라는 능력을 기준으로 분기합니다. |
| 03 | 메시지 호출 |
Interact (Message)
|
필요한 입력만 전달하고 문, 레버, 버튼 같은 구체 타입 캐스팅을 피합니다. |
| 04 | 구현 액터 | Event Interact |
각 액터가 자기 그래프에서 문 열기, 레버 전환, 버튼 실행을 처리합니다. |
| 05 | 미구현 액터 |
no implementation
|
실패 처리는 최소화하고 안내 숨김이나 디버그 기록 정도만 남깁니다. |
구현한 쪽
BP_Door는 문 열림 애니메이션을 실행합니다.BP_Lever는 상태 토글과 연결 장치를 처리합니다.-
BP_Button은 눌림 효과와 연결 이벤트를 처리합니다.
호출한 쪽
플레이어는 BP_Door인지 BP_Lever인지
판단하지 않습니다. 계약 구현 여부만 확인하고 메시지를 보내면 새
상호작용 액터가 추가되어도 호출 그래프를 크게 바꾸지 않아도 됩니다.