UI STATE MACHINE

프롬프트는 표시물이 아니라 상태 머신으로 관리한다

바라보는 대상, 입력 가능 여부, 위젯 참조를 같은 흐름에서 갱신해야 UI가 남거나 깜박이지 않습니다.

Idle

대상 없음

Trace 실패 시 위젯을 숨기고 이전 대상을 비웁니다.

Candidate

상호작용 후보

캐스트 성공 후 거리와 잠금 상태를 확인합니다.

Visible

프롬프트 표시

위젯이 없으면 생성하고, 있으면 텍스트만 갱신합니다.

Commit

입력 실행

Interact 입력 후 대상 함수 호출과 UI 정리를 함께 수행합니다.

Tick마다 Create Widget을 반복하지 않는다.
숨김과 제거는 다른 목적이므로 상황별로 구분한다.
상호작용 실패도 플레이어에게 짧게 알려준다.