오늘 작업사항

 

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

+ Recent posts