You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.1 KiB
35 lines
1.1 KiB
2 years ago
|
// Fill out your copyright notice in the Description page of Project Settings.
|
||
|
|
||
|
|
||
|
#include "MainMenuWidget.h"
|
||
|
#include "Components/Button.h"
|
||
|
#include "Kismet/GameplayStatics.h"
|
||
|
|
||
|
void UMainMenuWidget::NativeConstruct() {
|
||
|
Super::NativeConstruct();
|
||
|
|
||
|
HostOnlineGameButton->OnClicked.AddDynamic(
|
||
|
this, &ThisClass::UMainMenuWidget::OnHostOnlineGameButtonClicked);
|
||
|
|
||
|
GetMyGameSubsystem()->OnCreateSessionCompleteEvent.AddDynamic(
|
||
|
this, &ThisClass::StartSessionWhenCreatingSessonComplete);
|
||
|
}
|
||
|
|
||
|
void UMainMenuWidget::OnHostOnlineGameButtonClicked() {
|
||
|
GetMyGameSubsystem()->CreateSession(
|
||
|
"Lobby " + FString::FromInt(FMath::RandRange(1, 1e6)), 2, true);
|
||
|
}
|
||
|
|
||
|
void UMainMenuWidget::StartSessionWhenCreatingSessonComplete(bool bSuccess) {
|
||
|
GetMyGameSubsystem()->StartSession();
|
||
|
}
|
||
|
|
||
|
|
||
|
USessionsGameInstanceSubsystem *UMainMenuWidget::GetMyGameSubsystem() const {
|
||
|
const UGameInstance *GameInstance = UGameplayStatics::GetGameInstance(
|
||
|
GetWorld());
|
||
|
USessionsGameInstanceSubsystem *GameInstanceSubsystem = GameInstance->
|
||
|
GetSubsystem<USessionsGameInstanceSubsystem>();
|
||
|
return GameInstanceSubsystem;
|
||
|
}
|