Ein flexibles Menüsystem wurde hinzugefügt, das ein Hauptmenü und ein In-Game-Menü umfasst. Das Hauptmenü bietet Optionen wie "Neues Spiel starten", "Optionen" und "Credits". Das In-Game-Menü ermöglicht Pausenfunktionen wie "Fortsetzen", "Optionen" und "Zum Desktop beenden". Neue Klassen wurden eingeführt, darunter `MenuManagerSubsystem` zur Verwaltung von Menübildschirmen, `MenuScreenWidget` als Basisklasse für Menüs sowie spezifische Widgets wie `MainMenuWidget`, `InGameMenuWidget` und `OptionsMenuWidget`. Zusätzlich wurden stilisierte Schaltflächen (`MenuButtonWidget`) und ein neuer `MenuPlayerController` für menübasierte Levels implementiert. Änderungen an `KingshearthLegacyPlayerController` ermöglichen die Steuerung des In-Game-Menüs. Binäre Assets für Menüs und UI wurden hinzugefügt.
23 lines
451 B
C++
23 lines
451 B
C++
#include "MenuPlayerController.h"
|
|
#include "MainMenuWidget.h"
|
|
#include "MenuManagerSubsystem.h"
|
|
#include "Engine/GameInstance.h"
|
|
|
|
void AMenuPlayerController::BeginPlay()
|
|
{
|
|
Super::BeginPlay();
|
|
|
|
if (!IsLocalPlayerController() || !MainMenuClass)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (UGameInstance* GI = GetGameInstance())
|
|
{
|
|
if (UMenuManagerSubsystem* MenuManager = GI->GetSubsystem<UMenuManagerSubsystem>())
|
|
{
|
|
MenuManager->PushScreen(MainMenuClass);
|
|
}
|
|
}
|
|
}
|