티스토리 뷰
Closing the Attribute Menu
Attribute Menu를 활성화시키는 것까지는 했지만, 지금 상태로는 메뉴 창을 닫을 수 없다.
따라서 만들어둔 버튼으로 메뉴창을 닫는 것을 구현할 것이다.
이는 간단하게, WBP_AttributeMenu 위젯에서 해당 버튼을 불러와서 함수를 바인딩해줄 것이다.
여기서는 Remove from Parent 함수를 통해 위젯을 없애준다.

이렇게 하면 메뉴창은 사라지지만, 기존의 메뉴 활성화 버튼이 비활성화 상태 그대로 되어있다.
따라서 이를 다시 활성화 상태로 바꿔주어야 한다.
여기서는 Event Dispatchers를 사용하여 위젯이 파괴됐을 때 메뉴가 닫혔다는 것을 알릴 것이다.

이러면 해당 내용을 WBP_Overay 위젯에서 수신하여, Attribute Menu 위젯이 뷰포트에 추가된 이후에 닫힘 여부를 알게된다.
이때 Bind 함수를 호출하여 메뉴 버튼을 활성화버튼으로 바꿔주면 된다.

이렇듯 Event Dispatcher를 활용하면 다른 블루프린트에 특정 이벤트가 발생했음을 간단히 알릴 수 있다.
다만 아무 블루프린트끼리나 가능한 것은 아니다.
이벤트를 수신(Bind)하려는 블루프린트는 Event Dispatcher를 보유한 블루프린트의 참조를 가지고 있어야 한다.
이번 예제에서는 WBP_Overlay가 Create Widget을 통해 WBP_AttributeMenu를 생성하므로, 생성된 위젯의 참조를 가진다. 따라서 WBP_Overlay는 WBP_AttributeMenu에 정의된 Event Dispatcher에 접근하여 Bind를 수행할 수 있으며, 이후 Attribute Menu가 닫힐 때 발생하는 이벤트를 수신할 수 있다.
'Unreal > Udemy 강의' 카테고리의 다른 글
| Gameplay Ability System - Top Down RPG / Section 8-22 (0) | 2026.06.05 |
|---|---|
| Gameplay Ability System - Top Down RPG / Section 8-21 (0) | 2026.06.04 |
| Gameplay Ability System - Top Down RPG / Section 8-19 (0) | 2026.06.03 |
| Gameplay Ability System - Top Down RPG / Section 8-18 (0) | 2026.06.01 |
| Gameplay Ability System - Top Down RPG / Section 8-17 (0) | 2026.06.01 |
