오늘 작업사항
UI 기획 최종 정리
테스트 디버그 기능 넣기
공통 사용 위젯들, 자잘한 위젯들 등 UI 작업 맡기지 않은 부분 만들기
공방 UI만들기: 담당자(이건이) 이번주 내 UI 작업 불가
상의할 내용
상호작용 기능 어떻게 넣는지 이야기하기 -> 캐릭터쪽에서 기능 만들어서 넣나?
지금 UI에서 제작되어야하는거 정리

장재봉님(캐릭터담당)과 캐릭터 상호작용 관련 상의
[ ] 상호작용 대상 강조 표현
- 상의내용: 캐릭터쪽에서 상호작용 구현이 되어있는지
- 카메라 가져다대고 + UI 불러오는 게 있음 (텍스트형태) 델리게이트
InteractionComponent로 디버깅해보기
상호작용 테스트 확인 완료
상호작용 가능한 액터 외곽선 하이라이트 -> 기능 연결하기
기존에 CPHighlightable 이라는 인터페이스를 만들어둠.
테스트 액터에 연결해서 하이라이트 로직 작성
일반 알림 위젯
사용하는 액터쪽에서 이렇게 호출하면 됨.
if (auto* UIManager = GetGameInstance()->GetSubsystem<UCPUIManagerSubsystem>())
{
UCPCommonNotificationWidget* Notif = UIManager->PushWidget(NotificationWidgetClass);
Notif->ShowWithAutoClose(FText::FromString("제조 세션이 시작되었습니다"), 2.0f);
}
ShowWithAutoClose 함수에서 타이머를 설정함.
void UCPCommonNotificationWidget::ShowWithAutoClose(const FText& InText, float Duration)
{
SetNotifiactionText(InText);
if (Duration > 0.f)
{
GetWorld()->GetTimerManager().SetTimer(
AutoCloseTimerHandle,
this,
&UCPCommonNotificationWidget::RequestClose,
Duration,
false
);
}
}
그런데 타이머 설정하는 로직을 Popup쪽에서 전체적으로 공유하면 될 것 같아서 타이머를 설정하는 로직을
ShowWithAutoClose 내부에서 CPBasePopupWidget으로 옮겼다.
알림 위젯 함수가 깔끔해짐. 굿
void UCPCommonNotificationWidget::ShowWithAutoClose(const FText& InText, float Duration)
{
SetNotifiactionText(InText);
SetAutoClose(Duration);
}
문제 발생: 퀘스트 Popup 위젯으로 PushWidget/CloseWidget을 디버그 키로 테스트해보려고 했는데, PushWidget은 제대로 되나 같은 버튼을 한 번 더 눌렀을 때 CloseWidget이 전혀 되지 않음.

Print String으로 로그를 확인해봤더니 아예 CurrentPopupWidget->IsValid로 나아가지 않았다.
문제 원인을 찾아봤는데 InputMode가 UI로 고정되는 바람에 Q를 아예 인식하지 못한 것 같아서 그 부분을 해결하기 위해 InputMode부분 코드를 손보기로 했다.
'Unreal5 공부 > TIL' 카테고리의 다른 글
| 2026/08/11 TIL (0) | 2026.08.11 |
|---|---|
| 2026/08/10 TIL (0) | 2026.08.11 |
| 2026/08/04 TIL (0) | 2026.08.04 |
| 2026/07/29 TIL (0) | 2026.07.29 |
| 2026/07/21 TIL (0) | 2026.07.21 |