From 4a74fc1007437d646a6bc52427a22dfd4492fc1b Mon Sep 17 00:00:00 2001 From: baz Date: Wed, 3 Apr 2024 00:01:00 +0100 Subject: [PATCH] Add UFUNCTION to play Sound2D when button is hovered in UMainMenuUIWidget --- Source/Nakatomi/MainMenuUIWidget.cpp | 14 ++++++++++++-- Source/Nakatomi/MainMenuUIWidget.h | 6 ++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Source/Nakatomi/MainMenuUIWidget.cpp b/Source/Nakatomi/MainMenuUIWidget.cpp index 28c6d39..39c3bbf 100644 --- a/Source/Nakatomi/MainMenuUIWidget.cpp +++ b/Source/Nakatomi/MainMenuUIWidget.cpp @@ -13,21 +13,25 @@ void UMainMenuUIWidget::NativeConstruct() if (NewGameButton) { NewGameButton->OnClicked.AddUniqueDynamic(this, &UMainMenuUIWidget::NewGameButtonOnClicked); + NewGameButton->OnHovered.AddUniqueDynamic(this, &UMainMenuUIWidget::PlayHoveredSound); } if (LoadGameButton) { LoadGameButton->OnClicked.AddUniqueDynamic(this, &UMainMenuUIWidget::LoadGameButtonOnClicked); + LoadGameButton->OnHovered.AddUniqueDynamic(this, &UMainMenuUIWidget::PlayHoveredSound); } if (OptionsButton) { OptionsButton->OnClicked.AddUniqueDynamic(this, &UMainMenuUIWidget::OptionsButtonOnClicked); + OptionsButton->OnHovered.AddUniqueDynamic(this, &UMainMenuUIWidget::PlayHoveredSound); } if (QuitButton) { QuitButton->OnClicked.AddUniqueDynamic(this, &UMainMenuUIWidget::QuitButtonOnClicked); + QuitButton->OnHovered.AddUniqueDynamic(this, &UMainMenuUIWidget::PlayHoveredSound); } if (APlayerController* PlayerController = UGameplayStatics::GetPlayerController(GetWorld(), 0)) @@ -35,8 +39,6 @@ void UMainMenuUIWidget::NativeConstruct() UWidgetBlueprintLibrary::SetInputMode_UIOnlyEx(PlayerController, this, EMouseLockMode::LockAlways); PlayerController->bShowMouseCursor = true; } - - } void UMainMenuUIWidget::NewGameButtonOnClicked() @@ -81,3 +83,11 @@ void UMainMenuUIWidget::QuitButtonOnClicked() // For some reason the generic version does not work the same as FWindowsPlatformMisc FWindowsPlatformMisc::RequestExit(false); } + +void UMainMenuUIWidget::PlayHoveredSound() +{ + if (ButtonHoveredSound) + { + UGameplayStatics::PlaySound2D(GetWorld(), ButtonHoveredSound); + } +} diff --git a/Source/Nakatomi/MainMenuUIWidget.h b/Source/Nakatomi/MainMenuUIWidget.h index 3124ba8..94056fb 100644 --- a/Source/Nakatomi/MainMenuUIWidget.h +++ b/Source/Nakatomi/MainMenuUIWidget.h @@ -41,6 +41,9 @@ public: UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) TSoftObjectPtr NewGameLevel; + UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) + USoundBase* ButtonHoveredSound; + private: UUserWidget* currentNewGameWidget; @@ -63,4 +66,7 @@ private: UFUNCTION() void QuitButtonOnClicked(); + + UFUNCTION() + void PlayHoveredSound(); };