오늘 작업 내용

타이틀 화면 책 넘어가는거 구현하는 방법 알아보기

필요한 Asset 옮기기

퀘스트창 UI 디자인

 

타이틀 화면 넘어가는 연출 구현

- 플러그인 필요

https://fab.com/s/14056c950f5b

 

Animated Book Menu

-- Videos and Links --Demo Use Case VideoGetting Started Video Tutorial 🚀🚀🚀 Join the Discord and stay up to date. 🚀🚀🚀-- Releases --Plugin Version 1.7.0Supported Engine Versions UE5.1 - UE5.7Plugin Version 1.4.1Supportet Engine Versions in

www.fab.com

플러그인 사용 튜토리얼

https://www.youtube.com/watch?v=IfoUWlOBHkM

 

 

가격: 23300원

 

 

figma로 Quest Journal 창 디자인

 

 

중대한 오류 발견!!

 

QuestJournal UI를 켜둔 채로 다른 레벨로 이동하게 되면 이런 오류가 발생한다.

 

Widget에 가비지컬렉션이 제대로 적용되지 않은 문제인가? -> FPopupEntry의 변수에 UPROPERTY() 추가

 

if (Index != INDEX_NONE)
	{
		UUserWidget* TargetWidget = OpenWidgets[Index].Widget;
		if (IsValid(TargetWidget))
		{
			TargetWidget->RemoveFromParent();
		}
		
		OpenWidgets.RemoveAt(Index);
		UpdateInputMode();
	}

그리고 제거 전에 Index를 확인하도록 수정.

 

추가로 레벨 전환할 때 OpenWidgets 배열 내부에 있는 위젯들을 다 비워주는 것이 안전하다. 

 

이렇게 수정한 뒤 UI를 켜둔 채로 레벨을 왔다갔다 했더니 다른 오류가 발생했다.

 

OpenWidgets 자체에 UPROPERTY()가 붙어있지 않아 추가해줬다.

UPROPERTY()
TArray<FPopupEntry> OpenWidgets;

 

추가로 작업한 것

기존의 PopupEntry Struct를 USTRUCT를 붙여서 헤더 파일 가장 위쪽에 위치시켜주기

+ PopupEntry의 Widget을 WeakPtr로 바꾸기

 

Widget을 WeakPtr로 바꿨기 때문에 Get()함수를 통해 위젯을 가져오도록 변경.

여기서 Get() 함수를 통해야만 하는 이유는? -> 포인터는 주소를 가지고 있을 뿐. 알맹이를 가져오기 위해서 Get()함수를 거침

 

문제 해결!

 

[오류] 퀘스트 선택창에서 취소 버튼을 눌러도 UI가 꺼지지 않는 현상

 

void UCPQuestSelectWidget::HandleCancelButtonClicked()
{
	// TODO: UI 닫기 
	CachedUIManager->CloseWidget(this);
}

 

현재 코드

 

'Unreal5 공부 > TIL' 카테고리의 다른 글

2026/08/21 TIL  (0) 2026.08.21
2026/08/20 TIL  (0) 2026.08.20
2026/08/18 TIL  (0) 2026.08.18
2026/08/11 TIL  (0) 2026.08.11
2026/08/10 TIL  (0) 2026.08.11

+ Recent posts