// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Components/Widget.h" #include "Containers/Map.h" #include "GameplayTagContainer.h" #include "Styling/SlateBrush.h" #include "Templates/SharedPointer.h" #include "UObject/UObjectGlobals.h" #include "HitMarkerConfirmationWidget.generated.h" class SHitMarkerConfirmationWidget; class SWidget; class UObject; struct FGameplayTag; UCLASS() class UHitMarkerConfirmationWidget : public UWidget { GENERATED_BODY() public: UHitMarkerConfirmationWidget(const FObjectInitializer& ObjectInitializer); //~UWidget interface protected: virtual TSharedRef RebuildWidget() override; //~End of UWidget interface //~UVisual interface public: virtual void ReleaseSlateResources(bool bReleaseChildren) override; //~End of UVisual interface public: /** The duration (in seconds) to display hit notifies (they fade to transparent over this time) */ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Appearance, meta=(ClampMin=0.0, ForceUnits=s)) float HitNotifyDuration = 0.4f; /** The marker image to draw for individual hit markers. */ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Appearance) FSlateBrush PerHitMarkerImage; /** Map from zone tag (e.g., weak spot) to override marker images for individual location hits. */ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Appearance) TMap PerHitMarkerZoneOverrideImages; /** The marker image to draw if there are any hits at all. */ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Appearance) FSlateBrush AnyHitsMarkerImage; private: /** Internal slate widget representing the actual marker visuals */ TSharedPtr MyMarkerWidget; };