UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
HUD.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
11#include "HUD.generated.h"
12
13class AHUD;
14class APawn;
16class FCanvas;
18class UCanvas;
19class UFont;
21class UTexture;
22
23DECLARE_TS_MULTICAST_DELEGATE_FiveParams(FOnShowDebugInfo, AHUD* /* HUD */, UCanvas* /* Canvas */, const FDebugDisplayInfo& /* DisplayInfo */, float& /* YL */, float& /* YPos */);
25
35UCLASS(config=Game, hidecategories=(Rendering,Actor,Input,Replication), showcategories=("Input|MouseInput", "Input|TouchInput"), notplaceable, transient, BlueprintType, Blueprintable, MinimalAPI)
36class AHUD : public AActor
37{
39
40
41 UPROPERTY(BlueprintReadOnly, Category=HUD)
43
45 UPROPERTY(BlueprintReadOnly, Category=HUD)
47
49 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=HUD)
50 uint8 bShowHUD:1;
51
53 UPROPERTY(BlueprintReadWrite, Category=HUD)
55
59
61 UPROPERTY(BlueprintReadWrite, Category=HUD)
63
65 UPROPERTY(BlueprintReadWrite, Category=HUD)
67
69 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=HUD)
71
75
76public:
78 UPROPERTY()
80
83
85 float RenderDelta;
86
89 TArray<FName> DebugDisplay;
90
94
97 UPROPERTY()
98 TObjectPtr<UCanvas> Canvas;
99
101 UPROPERTY()
102 TObjectPtr<UCanvas> DebugCanvas;
103
105 UPROPERTY()
107
108public:
109 //=============================================================================
110 // Utils
111
115
122
128
132
135 UPROPERTY()
137
139 UPROPERTY()
141
142public:
160 UFUNCTION(reliable, client, SealedEvent)
161 ENGINE_API void AddDebugText(const FString& DebugText, AActor* SrcActor = NULL, float Duration = 0, FVector Offset = FVector(ForceInit), FVector DesiredOffset = FVector(ForceInit), FColor TextColor = FColor(ForceInit), bool bSkipOverwriteCheck = false, bool bAbsoluteLocation = false, bool bKeepAttachedToActor = false, UFont* InFont = NULL, float FontScale = 1.0, bool bDrawShadow = false);
162
166 UFUNCTION(reliable, client, SealedEvent)
168
175 UFUNCTION(reliable, client, SealedEvent)
177
182 UFUNCTION(BlueprintImplementableEvent, BlueprintCosmetic)
183 ENGINE_API void ReceiveDrawHUD(int32 SizeX, int32 SizeY);
184
186 UFUNCTION(BlueprintImplementableEvent, BlueprintCosmetic, meta=(DisplayName = "HitBoxClicked"))
190
192 UFUNCTION(BlueprintImplementableEvent, BlueprintCosmetic, meta=(DisplayName = "HitBoxReleased"))
196
198 UFUNCTION(BlueprintImplementableEvent, BlueprintCosmetic, meta=(DisplayName = "HitBoxBeginCursorOver"))
202
204 UFUNCTION(BlueprintImplementableEvent, BlueprintCosmetic, meta=(DisplayName = "HitBoxEndCursorOver"))
208
209 //=============================================================================
210 // Kismet API for simple HUD drawing.
211
220 UFUNCTION(BlueprintCallable, Category=HUD)
221 ENGINE_API void GetTextSize(const FString& Text, float& OutWidth, float& OutHeight, UFont* Font=NULL, float Scale=1.f) const;
222
233 UFUNCTION(BlueprintCallable, Category=HUD, meta=(TextColor="(R=0,G=0,B=0,A=1)"))
234 ENGINE_API void DrawText(const FString& Text, FLinearColor TextColor, float ScreenX, float ScreenY, UFont* Font=NULL, float Scale=1.f, bool bScalePosition=false);
235
245 UFUNCTION(BlueprintCallable, Category=HUD, meta=(LineColor="(R=0,G=0,B=0,A=1)"))
246 ENGINE_API void DrawLine(float StartScreenX, float StartScreenY, float EndScreenX, float EndScreenY, FLinearColor LineColor, float LineThickness=0.f);
247
256 UFUNCTION(BlueprintCallable, Category=HUD, meta=(RectColor="(R=0,G=0,B=0,A=1)"))
257 ENGINE_API void DrawRect(FLinearColor RectColor, float ScreenX, float ScreenY, float ScreenW, float ScreenH);
258
277 UFUNCTION(BlueprintCallable, Category=HUD, meta=(AdvancedDisplay = "9"))
278 ENGINE_API void DrawTexture(UTexture* Texture, float ScreenX, float ScreenY, float ScreenW, float ScreenH, float TextureU, float TextureV, float TextureUWidth, float TextureVHeight, FLinearColor TintColor=FLinearColor::White, EBlendMode BlendMode=BLEND_Translucent, float Scale=1.f, bool bScalePosition=false, float Rotation=0.f, FVector2D RotPivot=FVector2D::ZeroVector);
279
288 UFUNCTION(BlueprintCallable, Category=HUD)
289 ENGINE_API void DrawTextureSimple(UTexture* Texture, float ScreenX, float ScreenY, float Scale=1.f, bool bScalePosition=false);
290
307 UFUNCTION(BlueprintCallable, Category=HUD, meta=(AdvancedDisplay = "9"))
308 ENGINE_API void DrawMaterial(UMaterialInterface* Material, float ScreenX, float ScreenY, float ScreenW, float ScreenH, float MaterialU, float MaterialV, float MaterialUWidth, float MaterialVHeight, float Scale=1.f, bool bScalePosition=false, float Rotation=0.f, FVector2D RotPivot=FVector2D::ZeroVector);
309
320 UFUNCTION(BlueprintCallable, Category=HUD)
321 ENGINE_API void DrawMaterialSimple(UMaterialInterface* Material, float ScreenX, float ScreenY, float ScreenW, float ScreenH, float Scale=1.f, bool bScalePosition=false);
322
323 UFUNCTION(BlueprintCallable, Category = HUD)
325
331 UFUNCTION(BlueprintCallable, Category = HUD)
332 ENGINE_API FVector Project(FVector Location, bool bClampToZeroPlane = true) const;
333
335 UFUNCTION(BlueprintCallable, Category = HUD)
336 ENGINE_API void Deproject(float ScreenX, float ScreenY, FVector& WorldPosition, FVector& WorldDirection) const;
337
357 {
358 //Is Actor subclass?
359 if (!ClassFilter::StaticClass()->IsChildOf(AActor::StaticClass()))
360 {
361 return false;
362 }
363
364 //Run Inner Function, output to Base AActor Array
367
368 //Construct casted template type array
370 {
372 }
373
374 return true;
375 };
376
393 UFUNCTION(BlueprintPure, Category=HUD)
395
404 UFUNCTION(BlueprintCallable, Category=HUD)
405 ENGINE_API void AddHitBox(FVector2D Position, FVector2D Size, FName InName, bool bConsumesInput, int32 Priority = 0);
406
408 UFUNCTION(BlueprintCallable, Category=HUD)
409 ENGINE_API APlayerController* GetOwningPlayerController() const;
410
412 UFUNCTION(BlueprintCallable, Category=HUD)
413 ENGINE_API APawn* GetOwningPawn() const;
414
421 ENGINE_API void Draw3DLine(FVector Start, FVector End, FColor LineColor);
422
431 ENGINE_API void Draw2DLine(int32 X1, int32 Y1, int32 X2, int32 Y2, FColor LineColor);
432
435
436 ENGINE_API virtual void PostInitializeComponents() override;
437
439 ENGINE_API virtual void DrawActorOverlays(FVector Viewpoint, FRotator ViewRotation);
440
442 ENGINE_API virtual void DrawSafeZoneOverlay();
443
446
447 /************************************************************************************************************
448 Actor Render - These functions allow for actors in the world to gain access to the hud and render
449 information on it.
450 ************************************************************************************************************/
451
454
457
463 ENGINE_API virtual bool ShouldDisplayDebug(const FName& DebugType) const;
464
469 ENGINE_API virtual void ShowDebugInfo(float& YL, float& YPos);
470
473
477
480
484
487 ENGINE_API virtual void NextDebugTarget();
488
491 ENGINE_API virtual void PreviousDebugTarget();
492
493 // Callback allowing external systems to register to show debug info
495
496 // Called from ::PostRender. For less player/actor centered debugging
498
500 ENGINE_API virtual void PostRender();
501
503 ENGINE_API virtual void DrawHUD();
504
505 //=============================================================================
506 // Messaging.
507 //=============================================================================
508
511
516 ENGINE_API virtual void OnLostFocusPause(bool bEnable);
517
523
525 virtual void HandleBugScreenShot() { }
526
529
532
535
541
548
554
556 ENGINE_API bool AnyCurrentHitBoxHits() const;
557
565
572
578 ENGINE_API const FHUDHitBox* GetHitBoxWithName( const FName InName ) const;
579
580protected:
582
583private:
584 // Helper function to deal with screen offset and splitscreen mapping of coordinates to HUD
586
591};
592
593
594
#define NULL
Definition oodle2base.h:134
@ ForceInit
Definition CoreMiscDefines.h:155
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_MULTICAST_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:58
#define DECLARE_TS_MULTICAST_DELEGATE_FiveParams(DelegateName, Param1Type, Param2Type, Param3Type, Param4Type, Param5Type)
Definition DelegateCombinations.h:86
EInputEvent
Definition EngineBaseTypes.h:31
EBlendMode
Definition EngineTypes.h:245
return true
Definition ExternalRpcRegistry.cpp:601
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
uint32 Offset
Definition VulkanMemory.cpp:4033
uint32 Size
Definition VulkanMemory.cpp:4034
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition Actor.h:257
virtual ENGINE_API void PostInitializeComponents()
Definition Actor.cpp:6544
Definition PlayerController.h:261
Definition CanvasTypes.h:211
Definition DisplayDebugHelpers.h:9
Definition HUDHitBox.h:16
Definition NameTypes.h:617
Definition Array.h:670
Definition SubclassOf.h:30
Definition ActorComponent.h:152
Definition Canvas.h:159
Definition Font.h:111
Definition MaterialInterface.h:296
Definition Texture.h:1219
Definition World.h:918
void PostRender(FScene &Scene)
Definition HairStrandsRendering.cpp:372
@ false
Definition radaudio_common.h:23
Definition Color.h:486
Definition DebugTextInfo.h:20
Definition Color.h:48
Definition ObjectPtr.h:488