상호작용 계약

상호작용 오브젝트 책임 분리

문, 스위치, 아이템은 생김새가 달라도 같은 계약을 따릅니다. 감지하고, 조건을 확인하고, 상태를 바꾸고, 결과를 전달하는 순서를 고정합니다.

1 Detect

트리거와 시선

Overlap, Line Trace, Hit Event 중 하나로 후보 오브젝트를 찾습니다.

2 Validate

입력 조건 검증

플레이어 타입, 거리, 잠금 상태, 쿨다운을 Branch 앞에서 확인합니다.

3 Execute

상태 변경 실행

bIsOpen, bIsActive 같은 상태 변수를 먼저 바꾸고 애니메이션을 재생합니다.

4 Feedback

결과 피드백

UI, 사운드, 하이라이트를 같은 함수에서 정리해 남는 표시를 방지합니다.

입력은 플레이어 쪽, 실행은 오브젝트 쪽에 둔다.
상태 변수 이름은 결과가 아니라 현재 상태를 말한다.
실패 분기에도 UI 정리와 로그를 연결한다.