0. 개요
언리얼 엔진의 버전이 올라가면서 베타 스테이지에 있던 MVVM 플러그인에 약간 변화가 생기면서 기존의 MVVM 위젯이 작동하지 않은 버그가 발생했다.
1. 버그가 발생한 이유
UE 5.3 부터 MVVM 플러그인이 변화했는데, 뷰 모델의 생성 타입(Creation Type)이 수동(Manual)일 때, 뷰 모델의 필드 노티파이가 위젯의 어떤 요소에도 바인드 되지 않았다면, 위젯에서 뷰 모델을 할당하는 데에 실패하게 된다.
따라서, 버그를 해결하기 위해서는 '필드 노티파이를 위젯의 어떤 한 요소에라도 바인딩'해야 한다.
2. 버그 수정
(1) 로드 슬롯 타입 별 필드 노티파이 바인드
(1-1) MVVM_LoadSlot 뷰 모델
MVVM_LoadSlot 내의 멤버 변수 중 하나였던 로드 슬롯 이름을 필드 노티파이로 설정한다.
이 이름은 플레이할 때 실제로 노출되지 않는다.
UPROPERTY(EditAnywhere, BlueprintReadWrite, FieldNotify, Setter, Getter, meta = (AllowPrivateAccess = "true"))
FString LoadSlotName;
public:
/* Getter, Setter */
void SetPlayerName(FString InPlayerName);
void SetLevel(int32 InLevel);
void SetMapName(FString InMapName);
void SetLoadSlotName(FString InSlotName);
FString GetPlayerName() const { return PlayerName; }
int32 GetLevel() const { return Level;}
FString GetMapName() const { return MapName; }
FString GetLoadSlotName() const {return LoadSlotName;}
void UMVVM_LoadSlot::SetLoadSlotName(FString InSlotName)
{
UE_MVVM_SET_PROPERTY_VALUE(LoadSlotName, InSlotName);
}
(1-2) 뷰 모델 내의 필드 노티파이 변수 바인드
WBP_LoadSlot 의 여러 종류 위젯 내에 텍스트 박스를 만들고 위의 슬롯 이름을 바인드한다.

(2) WBP_LoadScreen

위의 할당 된 BP Load Screen View Model이 null로 나타난다.
이 위젯의 뷰 모델은 Property Path로 설정되어 있어 특정 함수로 뷰 모델을 감지하는데, 뷰 모델의 필드 노티파이가 바인드 되지 않았기 때문에 뷰 모델이 null로 나타나고 있다.
따라서 뷰 모델 바인드를 진행한다.
'UE 5 스터디 > Gameplay Ability System(GAS)' 카테고리의 다른 글
| 32-16. 로그 라이크 - (3) 게임플레이 어빌리티 - (6) 뽑기 로직 리펙토링 (2) | 2025.07.09 |
|---|---|
| 32-15. 로그 라이크 - (7) 데미지 계산(ExecCalc) - (1) 속성 추가 데미지 업그레이드 (0) | 2025.07.02 |
| 24-2. 엔진 업그레이드 - (1) 게임플레이 어빌리티 - (1) 아케인 파편 수정 (0) | 2025.06.30 |
| 24-1. 엔진 업그레이드 - 컴파일 오류 해결 (0) | 2025.06.30 |
| 24. 언리얼 엔진 업그레이드 (UE 5.2 -> UE 5.6) (0) | 2025.06.30 |
