Unreal5 공부/TIL
2026/08/26
anna59
2026. 8. 26. 23:56
오늘의 작업
UI 디자인 폴리싱
UI SFX 추가
UI 사운드 재생 구조
FOnWidgetStateChanged에서 bIsOpen 변수를 받는 방식
vs
FOnWidgetOpened, FOnWidgetClosed
델리게이트 두 개 사용하는 방식
변수를 하나 받는 것보다는 열었을 때 / 닫았을 때 따로 델리게이트를 두는 것이 구조 상 간결해질 것 같아서 후자를 선택했다.
위젯 Base 클래스에 델리게이트를 선언해두고, 각 위젯에 열었을 때 / 닫았을 때 사운드 에셋을 따로 넣은 뒤 해당 사운드를 재생해야 할 때 델리게이트 브로드캐스트를 하면 UIManger에서 사운드를 재생해주는 시스템으로 구현하기로 했다.
이렇게 하면 나중에 사운드 에셋을 변경하는 일이 생겼을 때 쉽게 변경할 수 있다.
의문: 근데 UIManager로 꼭 델리게이트를 통해 전달해야됨? 어짜피 각 위젯이 캐싱된 UIManager를 들고 있는데?
-> UImanager에서 사운드 재생하는 PlayWidgetSound() 함수 정의하고 각 위젯에서 Open/Close Sound 에셋 블루프린트에서 설정하면 알아서 UImanager 통해서 사운드가 재생되도록 재설정함.
이제 문제는 PopupWidget이 아니라 FixedWidget의 경우 Visibility 토글로 작동하기 때문에 Visibility 토글 함수에 따로 사운드 재생 함수를 달아줘야 한다는 점이다.

나쁘지 않은 컨펌 사운드 메모~