UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
HLODActor.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "Containers/Array.h"
7#include "Containers/Set.h"
13
14#if WITH_EDITOR
17#endif // WITH_EDITOR
18
19#include "HLODActor.generated.h"
20
21class UHLODLayer;
23
25
26#if WITH_EDITOR
28{
29 enum class EEventType
30 {
33 };
34
35 EEventType EventType;
37};
38
40#endif
41
42UENUM(BlueprintType)
44{
45 Actor UMETA(DisplayName = "Actor Origin"), // Origin is at actor location
46 World UMETA(DisplayName = "World Origin"), // Origin is at world <0,0,0>
47};
48
49USTRUCT(BlueprintType)
51{
53
54#if WITH_EDITORONLY_DATA
55 UPROPERTY(EditAnywhere, Category = "Export Options")
56 EExportHLODMeshOrigin MeshOrigin = EExportHLODMeshOrigin::World;
57
58 UPROPERTY(EditAnywhere, Category = "Export Options", meta=(ContentDir))
60
61 bool bTestExportOnly = false;
62#endif
63};
64
65UCLASS(NotPlaceable, MinimalAPI, HideCategories=(Rendering, Replication, Collision, Physics, Navigation, Networking, Input, Actor, LevelInstance, Cooking))
67{
69
70 friend class FHLODActorDesc;
72
73public:
74 inline uint32 GetLODLevel() const { return LODLevel; }
75
76 // ~Begin AActor interface
77 virtual bool IsHLODRelevant() const override { return true; }
78 // ~End AActor interface
79
80 // ~Begin IWorldPartitionHLODObject interface
81 virtual UObject* GetUObject() const override { return const_cast<AWorldPartitionHLOD*>(this); }
82 ENGINE_API virtual ULevel* GetHLODLevel() const override;
83 ENGINE_API virtual FString GetHLODNameOrLabel() const override;
84 virtual bool DoesRequireWarmup() const override { return bRequireWarmup; }
85 ENGINE_API virtual TSet<UObject*> GetAssetsToWarmup() const override;
86 ENGINE_API virtual void SetVisibility(bool bIsVisible) override;
87 ENGINE_API virtual const FGuid& GetSourceCellGuid() const override;
88 ENGINE_API virtual bool IsStandalone() const override;
89 ENGINE_API virtual const FGuid& GetStandaloneHLODGuid() const override;
90 ENGINE_API virtual bool IsCustomHLOD() const override;
91 ENGINE_API virtual const FGuid& GetCustomHLODGuid() const override;
92 // ~End IWorldPartitionHLODObject interface
93
94#if WITH_EDITOR
96
98
102
105
106 void SetRequireWarmup(bool InRequireWarmup) { bRequireWarmup = InRequireWarmup; }
108
109 ENGINE_API void SetSourceCellGuid(const FGuid& InSourceCellGuid);
110 inline void SetLODLevel(uint32 InLODLevel) { LODLevel = InLODLevel; }
111
112 ENGINE_API const FBox& GetHLODBounds() const;
114
115 double GetMinVisibleDistance() const { return MinVisibleDistance; }
116 void SetMinVisibleDistance(double InMinVisibleDistance) { MinVisibleDistance = InMinVisibleDistance; }
117
118 ENGINE_API void BuildHLOD(bool bForceBuild = false);
122
123 ENGINE_API int64 GetStat(FName InStatName) const;
125 void ResetStats() { HLODStats.Reset(); }
126
128
129 UFUNCTION(BlueprintCallable, Category = "World Partition", meta = (DevelopmentOnly))
131
134
135private:
136 const FStats& GetStats() const { return HLODStats; }
137
138#endif // WITH_EDITOR
139
140protected:
141 //~ Begin UObject Interface.
142 ENGINE_API virtual void Serialize(FArchive& Ar) override;
143 ENGINE_API virtual bool IsEditorOnly() const override;
144 ENGINE_API virtual bool NeedsLoadForServer() const override;
145 ENGINE_API virtual void PostLoad() override;
146#if WITH_EDITOR
147 ENGINE_API virtual void PreSave(FObjectPreSaveContext ObjectSaveContext) override;
148 ENGINE_API virtual void RerunConstructionScripts() override;
149 virtual bool CanEditChange(const FProperty* InProperty) const override { return false; }
150 virtual bool CanEditChangeComponent(const UActorComponent* Component, const FProperty* InProperty) const override { return false; }
151#endif
152 //~ End UObject Interface.
153
154 //~ Begin AActor Interface.
155 ENGINE_API virtual void PreRegisterAllComponents() override;
156 ENGINE_API virtual void BeginPlay() override;
157 ENGINE_API virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
158 virtual bool SupportsIncrementalPreRegisterComponents() const override
159 {
160 return false;
161 }
162 virtual bool SupportsIncrementalPreUnregisterComponents() const override
163 {
164 return false;
165 }
167 {
168 return false;
169 }
170 virtual bool IsRuntimeOnly() const override { return true; }
171#if WITH_EDITOR
173 ENGINE_API virtual void GetStreamingBounds(FBox& OutRuntimeBounds, FBox& OutEditorBounds) const override;
174
175 virtual bool ShouldImport(FStringView ActorPropString, bool IsMovingLevel) override { return false; }
176 virtual bool IsLockLocation() const override { return true; }
177 virtual bool IsUserManaged() const override { return false; }
178 virtual bool IsActorLabelEditable() const override { return false; }
179 ENGINE_API virtual void GetAssetRegistryTags(FAssetRegistryTagsContext Context) const override;
180#endif
181 //~ End AActor Interface.
182
183private:
184#if WITH_EDITOR
185 ENGINE_API void OnWorldCleanup(UWorld* InWorld, bool bSessionEnded, bool bCleanupResources);
187#endif
188
189#if WITH_EDITORONLY_DATA
190 UPROPERTY()
192
193 UPROPERTY()
194 FHLODBuildInputStats InputStats;
195
196 UPROPERTY()
198
199 UPROPERTY()
200 double MinVisibleDistance;
201
202 UPROPERTY()
204
205 UPROPERTY()
207
208 UPROPERTY()
209 FString HLODBuildReport;
210#endif
211
212 UPROPERTY()
213 uint32 LODLevel;
214
215 UPROPERTY()
216 bool bRequireWarmup;
217
218 UPROPERTY()
219 FGuid SourceCellGuid;
220
221 UPROPERTY()
222 FGuid StandaloneHLODGuid;
223
224#if WITH_EDITORONLY_DATA
225 UPROPERTY()
227
228 UPROPERTY()
230
231 UPROPERTY()
233
234 UPROPERTY()
236#endif
237
238#if WITH_EDITOR
240#endif
241};
242
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
EExportHLODMeshOrigin
Definition HLODActor.h:44
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
#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
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
#define DEFINE_ACTORDESC_TYPE(ActorType, ActorDescType)
Definition WorldPartitionActorDescType.h:36
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Actor.h:257
Definition HLODActor.h:67
virtual bool IsComponentRelevantForNavigation(UActorComponent *Component) const override
Definition HLODActor.h:166
virtual bool IsHLODRelevant() const override
Definition HLODActor.h:77
virtual bool DoesRequireWarmup() const override
Definition HLODActor.h:84
virtual UObject * GetUObject() const override
Definition HLODActor.h:81
virtual bool IsRuntimeOnly() const override
Definition HLODActor.h:170
virtual bool SupportsIncrementalPreUnregisterComponents() const override
Definition HLODActor.h:162
virtual bool SupportsIncrementalPreRegisterComponents() const override
Definition HLODActor.h:158
Definition Archive.h:1208
Definition AssetRegistryTagsContext.h:98
Definition NameTypes.h:617
Definition ObjectSaveContext.h:244
Definition UnrealType.h:174
Definition IWorldPartitionHLODObject.h:13
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition UniquePtr.h:107
Definition ActorComponent.h:152
Definition HLODLayer.h:43
Definition Level.h:423
Definition Object.h:95
Definition HLODSourceActors.h:15
Definition WorldPartitionRuntimeCell.h:236
Definition World.h:918
EEventType
Definition EventManager.h:30
Type
Definition EngineTypes.h:3431
Definition SoftObjectPath.h:767
Definition HLODActor.h:51
Definition Guid.h:109
Definition HLODBuilder.h:90
Definition WorldPartitionRuntimeCell.h:74
Definition ObjectPtr.h:488
Definition SoftObjectPtr.h:174
Definition StatsSystem.h:13