260417 TIL - 월드드랍 UI와 위젯 컴포넌트

2026. 4. 18. 06:05언리얼 7기 본캠프

오늘은 배운 내용이라기보단 만들면서 고생한 시행착오를 수없이 많이 거친것에 대해 이야기하려고 함

 

만들어야 할 내용은 '바닥에 있는 아이템중 상호작용 대상이 된 아이템에 띄우는 UI' 였고, 이전 팀플에서도 만들어본적이 있어서 크게 어려울거라고 생각하진 않았음

코드 한줄때문에 28시간을 낭비하기 전까진...

 

이전 팀프로젝트때 만든 바닥 아이템 UI. 비슷한 느낌으로 갈거라 어려울거란 생각은 안했는데...

 

 

열심히 코드를 짰음. 바닥에 있는 아이템은 그 아이템의 정보를 가진 Payload를 가지고 있으니, 그 Payload에서 Item Definition을 불러오고 거기서 Fragment 시스템을 기반으로 만들었으니 필요한 Fragment를 가져와 출력할 정보를 수집하고 UI랑 연결해주고 UI WBP를 만들어서 채우고... 아무것도 문제될거라 생각하지 않았음

 

초기 상태. 딱히 동작에 문제될것도 없고 UI가 안 뜰 이유도 없는 깔끔한 UI임

 

근데 막상 위젯 컴포넌트에 위젯을 등록하고 스폰시켜보니까 스폰이 안됨. 여기부터 멘탈이 나가기 시작함

분명히 위젯 문제 없었고, 컴포넌트 잘 장착돼있고, 로그 찍어보니까 정상적으로 등록이 되었다고 하는데 계속 UI가 안그려지기 시작함

 

외곽선만 보이고 UI가 안나온다...

 

이때부터 진짜 열몇시간동안 UI에 대해 공식문서 찾아보고 가이드 찾아보고 UI 구조 계속 바꿔보고 코드도 바꿔보고 하면서 별의 별 삽질을 다했음. 진짜 이번 팀플 과정에서 가장 힘들었다고 해도 과언이 아닐 정도

 

하지만 원인은 전혀 예상치 못한곳에 있었음..

 

문제의 코드 '한 줄'

 

이녀석이 범인이었음. 싱글게임이던 이전 팀플과 달리 '멀티게임인데 tick돌리면 뭔가 연산에 부하가 되지 않을까' 라는 생각(이것도 어이가 없는게, 어차피 UI는 로컬에만 뜨는거라 크게 상관이 없었음. 멍청...) 으로 false로 해뒀었는데, 위젯 컴포넌트는 tick마다 ui를 화면에 계속 출력하며 추적하거나 회전하거나 해야하는데 이게 false로 되어있으니 UI가 애초에 뜰 리가 있나...

 

테스트용 위젯을 넣고 동작시킨 모습

 

그래서 수십시간에 걸친 내 고통은 true 한줄로 완벽하게 해결이 되었고, 이 브랜치를 PR 올린 후에 말 그대로 긴장이 풀려서 그대로 뻗어버렸음...

고통스러운 순간이었지만 이런 경험도 결국 피와 살이 될것이라 생각함

 

된다... 된다... 진짜 된다... ㅠㅠ

 

 

한줄평 : UI 너무 싫다............