0. 개요

이제 AuraGameModeBase에서 선언된 멤버 변수 TMap<FString, TSoftObjectPtr<UWorld>> Maps 변수를 이용하여 맵 이름에 따르는 맵을 저장하고, 해당 맵으로 이동시킬 것이다.

 

 

1. 맵 불러오기

(1) MVVM_LoadScreen에서 게임 시작 버튼 콜백 함수

	// 게임 시작 버튼 클릭
	UFUNCTION(BlueprintCallable)
	void PlayButtonPressed();
void UMVVM_LoadScreen::PlayButtonPressed()
{
	AAuraGameModeBase* AuraGameMode = Cast<AAuraGameModeBase>(UGameplayStatics::GetGameMode(this));
	AuraGameMode->TravelToMap(SelectedSlot);
}

AuraGameMode의 TravelToMap 함수에게 선택된 슬롯의 포인터를 넘겨줄 것이다.

 

 

(2) AuraGameMode의 TravlelToMap 함수

	void TravelToMap(UMVVM_LoadSlot* Slot);
void AAuraGameModeBase::TravelToMap(UMVVM_LoadSlot* Slot)
{
	const FString SlotName = Slot->LoadSlotName;
	const int32 SlotIndex = Slot->SlotIndex;

	UGameplayStatics::OpenLevelBySoftObjectPtr(Slot, Maps.FindChecked(Slot->GetMapName()));
}

GameplayStatics 클래스의 OpenLevelBySoftObjectPtr 함수에 슬롯의 이름에 해당하는 맵의 소프트 포인터를 전달한다.

해당 함수에서 소프트 포인터를 참조하여 레벨을 시작한다.

 

 

(3) WBP_LoadScreen의 Blueprint Initialize Widget 함수에서 게임 시작 버튼 바인딩