diff --git a/Source/GameBaseFramework/Private/UI/Widgets/GBFActivatableWidget.cpp b/Source/GameBaseFramework/Private/UI/Widgets/GBFActivatableWidget.cpp index a3d6ebc7..ee591dfb 100644 --- a/Source/GameBaseFramework/Private/UI/Widgets/GBFActivatableWidget.cpp +++ b/Source/GameBaseFramework/Private/UI/Widgets/GBFActivatableWidget.cpp @@ -1,5 +1,9 @@ #include "UI/Widgets/GBFActivatableWidget.h" +#include "GameBaseFrameworkGameSettings.h" + +#include + #if WITH_EDITOR #include #endif @@ -30,6 +34,13 @@ TOptional< FUIInputConfig > UGBFActivatableWidget::GetDesiredInputConfig() const } } +bool UGBFActivatableWidget::NativeOnHandleBackAction() +{ + const auto sound = GetDefault< UGameBaseFrameworkGameSettings >()->BackHandlerSound.LoadSynchronous(); + PlaySound( sound ); + return Super::NativeOnHandleBackAction(); +} + #if WITH_EDITOR void UGBFActivatableWidget::ValidateCompiledWidgetTree( const UWidgetTree & blueprint_widget_tree, IWidgetCompilerLog & compile_log ) const { diff --git a/Source/GameBaseFramework/Public/GameBaseFrameworkGameSettings.h b/Source/GameBaseFramework/Public/GameBaseFrameworkGameSettings.h index bec07cae..b7e67b9c 100644 --- a/Source/GameBaseFramework/Public/GameBaseFrameworkGameSettings.h +++ b/Source/GameBaseFramework/Public/GameBaseFrameworkGameSettings.h @@ -5,6 +5,7 @@ #include "GameBaseFrameworkGameSettings.generated.h" +class USoundCue; class UGBFSaveGame; UCLASS( config = Game, MinimalAPI, meta = ( DisplayName = "GameBaseFramework - Settings" ) ) @@ -28,4 +29,7 @@ class UGameBaseFrameworkGameSettings final : public UDeveloperSettingsBackedByCV UPROPERTY( EditDefaultsOnly, config, Category = "SaveGame" ) FString SaveGameSlotName; + + UPROPERTY( BlueprintReadOnly, EditDefaultsOnly, config, Category = "Sounds" ) + TSoftObjectPtr< USoundBase > BackHandlerSound; }; diff --git a/Source/GameBaseFramework/Public/UI/Widgets/GBFActivatableWidget.h b/Source/GameBaseFramework/Public/UI/Widgets/GBFActivatableWidget.h index f5f8d3d0..423bc8c3 100644 --- a/Source/GameBaseFramework/Public/UI/Widgets/GBFActivatableWidget.h +++ b/Source/GameBaseFramework/Public/UI/Widgets/GBFActivatableWidget.h @@ -22,6 +22,7 @@ class GAMEBASEFRAMEWORK_API UGBFActivatableWidget : public UCommonActivatableWid public: TOptional< FUIInputConfig > GetDesiredInputConfig() const override; + bool NativeOnHandleBackAction() override; #if WITH_EDITOR void ValidateCompiledWidgetTree( const UWidgetTree & blueprint_widget_tree, class IWidgetCompilerLog & compile_log ) const override;