0. 개요
불러올 슬롯을 선택하는 버튼을 설계한다.
(1) 어떤 슬롯이 선택되었는지 표시하기
- 선택한 슬롯의 선택 버튼 비활성화
- 나머지 슬롯의 선택 버튼 활성화
(2) 게임 시작, 슬롯 삭제 버튼 활성화
1. 슬롯 선택 버튼
(1) MVVM_LoadSlot에서 델리게이트 선언
불리언을 받는 다이내믹 델리게이트를 선언한다.
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FEnableSelectSlotButton, bool, bEnable);
불리언에 따라 버튼을 활성화 / 비활성화 하게 될 것이다.
(2) MVVM_LoadScreen에서 선택 버튼 콜백 함수에서 델리게이트 호출
void UMVVM_LoadScreen::SelectSlotButtonPressed(int32 Slot)
{
// 슬롯에 접근해서 루프
for (const TPair<int32, UMVVM_LoadSlot*> LoadSlot : LoadSlots)
{
// 버튼 활성화 델리게이트 호출, 선택한 슬롯은 제외
if (LoadSlot.Key == Slot)
LoadSlot.Value->EnableSelectSlotButton.Broadcast(false);
else
LoadSlot.Value->EnableSelectSlotButton.Broadcast(true);
}
}
슬롯 선택을 누른 슬롯의 버튼은 비활성화하고 나머지 슬롯은 활성화하는 로직이다.
(3) WBP_LoadSlot_Taken 이벤트 그래프에서 델리게이트 이벤트 바인딩
해당 델리게이트로 전달받은 불리언을 이용해 버튼을 활성화 / 비활성화 한다.
2. 게임 시작, 슬롯 삭제 버튼 활성화
(1) WBP_LoadScreen의 Event PreConstruct에서 두 버튼 비활성화
위의 로직을 함수로 접어 불리언을 받게 할 수 있다.
(2) Blueprint Initialize Widget 이벤트에 델리게이트 바인딩
이 함수는 MVVM이 생성되고, 이어서 뷰가 생성된 이후에 호출되기 때문에 뷰와 뷰 모델이 모두 유효하다.
따라서 뷰 모델을 가져와 이벤트에 바인딩 한다.
3. 디버그
(1) 로드 메뉴에서 UI 외부를 클릭하면 카메라 시점을 조작하게 되는 버그
입력 모드를 UI Only로 고정한다.
'UE 5 스터디 > Gameplay Ability System(GAS)' 카테고리의 다른 글
28-13. 로드 메뉴 UI - (9) 필드 노티파이 - 맵 이름 가져오기 (0) | 2025.04.07 |
---|---|
28-12. 로드 메뉴 UI - (8) 메뉴 앵커 - 저장 데이터 삭제 (0) | 2025.04.04 |
28-10. 저장 - (2) 저장 상태 (0) | 2025.04.02 |
28-9. 로드 메뉴 UI - (6) MVVM 필드 노티파이 - 뷰에 뷰 모델의 멤버 변수 바인딩 (0) | 2025.04.02 |
28-8. 저장 - (1) 저장 게임 오브젝트(SaveGame Object) (0) | 2025.04.02 |