UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NavLinkDefinition.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_4
6#include "CoreMinimal.h"
7#endif
9#include "UObject/Object.h"
10#include "UObject/Class.h"
14#include "NavLinkDefinition.generated.h"
15
16class UNavAreaBase;
17
18UENUM()
20{
27}
28
29USTRUCT(BlueprintType)
31{
33
34
35 UPROPERTY(EditAnywhere, Category=Default, meta=(ClampMin = "0.0"))
36 float LeftProjectHeight;
37
39 UPROPERTY(EditAnywhere, Category=Default, meta=(ClampMin = "0.0", DisplayName="Right Project Height"))
40 float MaxFallDownLength;
41
43 UE_DEPRECATED(5.3, "Use FNavLinkId::Invalid instead")
44 static constexpr uint32 InvalidUserId = 0;
45
47 UE_DEPRECATED(5.3, "Use NavLinkId instead, this id is no longer used in the engine")
48 uint32 UserId;
49
50 FNavLinkId NavLinkId;
51
52 UPROPERTY(EditAnywhere, Category=Default, meta=(ClampMin = "1.0"))
53 float SnapRadius;
54
55 UPROPERTY(EditAnywhere, Category=Default, meta=(ClampMin = "1.0", EditCondition="bUseSnapHeight"))
56 float SnapHeight;
57
59 UPROPERTY(EditAnywhere, Category=Default)
60 FNavAgentSelector SupportedAgents;
61
62 // DEPRECATED AGENT CONFIG
63#if CPP
64 union
65 {
66 struct
67 {
68#endif
69 UPROPERTY()
70 uint32 bSupportsAgent0 : 1;
71 UPROPERTY()
72 uint32 bSupportsAgent1 : 1;
73 UPROPERTY()
74 uint32 bSupportsAgent2 : 1;
75 UPROPERTY()
76 uint32 bSupportsAgent3 : 1;
77 UPROPERTY()
78 uint32 bSupportsAgent4 : 1;
79 UPROPERTY()
80 uint32 bSupportsAgent5 : 1;
81 UPROPERTY()
82 uint32 bSupportsAgent6 : 1;
83 UPROPERTY()
84 uint32 bSupportsAgent7 : 1;
85 UPROPERTY()
86 uint32 bSupportsAgent8 : 1;
87 UPROPERTY()
88 uint32 bSupportsAgent9 : 1;
89 UPROPERTY()
90 uint32 bSupportsAgent10 : 1;
91 UPROPERTY()
92 uint32 bSupportsAgent11 : 1;
93 UPROPERTY()
94 uint32 bSupportsAgent12 : 1;
95 UPROPERTY()
96 uint32 bSupportsAgent13 : 1;
97 UPROPERTY()
98 uint32 bSupportsAgent14 : 1;
99 UPROPERTY()
100 uint32 bSupportsAgent15 : 1;
101#if CPP
102 };
103 uint32 SupportedAgentsBits;
104 };
105#endif
106
107#if WITH_EDITORONLY_DATA
109 UPROPERTY(EditAnywhere, Category=Default)
110 FString Description;
111#endif // WITH_EDITORONLY_DATA
112
113 UPROPERTY(EditAnywhere, Category=Default, BlueprintReadWrite)
115
116 UPROPERTY(EditAnywhere, Category=Default, meta=(InlineEditConditionToggle))
117 uint8 bUseSnapHeight : 1;
118
120 UPROPERTY(EditAnywhere, Category = Default)
121 uint8 bSnapToCheapestArea : 1;
122
124 UPROPERTY()
125 uint8 bCustomFlag0 : 1;
126
128 UPROPERTY()
129 uint8 bCustomFlag1 : 1;
130
132 UPROPERTY()
133 uint8 bCustomFlag2 : 1;
134
136 UPROPERTY()
137 uint8 bCustomFlag3 : 1;
138
140 UPROPERTY()
141 uint8 bCustomFlag4 : 1;
142
144 UPROPERTY()
145 uint8 bCustomFlag5 : 1;
146
148 UPROPERTY()
149 uint8 bCustomFlag6 : 1;
150
152 UPROPERTY()
153 uint8 bCustomFlag7 : 1;
154
156 uint8 bIsGenerated : 1;
157
159
163 FNavigationLinkBase& operator=(const FNavigationLinkBase& Other) = default;
166
167 void InitializeAreaClass(const bool bForceRefresh = false);
168 ENGINE_API void SetAreaClass(UClass* InAreaClass);
169 ENGINE_API UClass* GetAreaClass() const;
170 ENGINE_API bool HasMetaArea() const;
171
172#if WITH_EDITORONLY_DATA
173 ENGINE_API void PostSerialize(const FArchive& Ar);
174#endif
175
176#if WITH_EDITOR
181#endif // WITH_EDITOR
182
183private:
185 UPROPERTY(EditAnywhere, Category = Default)
187
188 TWeakObjectPtr<UClass> AreaClassOb;
189};
190
191template<>
193{
194#if WITH_EDITORONLY_DATA
195 enum
196 {
197 WithPostSerialize = true,
198 };
199#endif
200};
201
202USTRUCT(BlueprintType)
204{
206
207 UPROPERTY(EditAnywhere, Category=Default, BlueprintReadWrite, meta=(MakeEditWidget=""))
209
210 UPROPERTY(EditAnywhere, Category=Default, BlueprintReadWrite, meta=(MakeEditWidget=""))
212
214 : Left(0,-50, 0), Right(0, 50, 0)
215 {}
216
220
222 {
223 FNavigationLink Result = *this;
224 Result.Left = Transformation.TransformPosition(Result.Left);
225 Result.Right = Transformation.TransformPosition(Result.Right);
226
227 return Result;
228 }
229
231 {
232 FNavigationLink Result = *this;
233 Result.Left += Translation;
234 Result.Right += Translation;
235
236 return Result;
237 }
238
240 {
241 FNavigationLink Result = *this;
242
243 Result.Left = Rotation.RotateVector(Result.Left);
244 Result.Right = Rotation.RotateVector(Result.Right);
245
246 return Result;
247 }
248};
249
250template<>
251struct TStructOpsTypeTraits< FNavigationLink > : public TStructOpsTypeTraits< FNavigationLinkBase >
252{
253};
254
255USTRUCT()
257{
259
260 UPROPERTY(EditAnywhere, Category=Default, meta=(MakeEditWidget=""))
261 FVector LeftStart;
262
263 UPROPERTY(EditAnywhere, Category=Default, meta=(MakeEditWidget=""))
264 FVector LeftEnd;
265
266 UPROPERTY(EditAnywhere, Category=Default, meta=(MakeEditWidget=""))
267 FVector RightStart;
268
269 UPROPERTY(EditAnywhere, Category=Default, meta=(MakeEditWidget=""))
270 FVector RightEnd;
271
273 : LeftStart(-25, -50, 0), LeftEnd(25, -50,0), RightStart(-25, 50, 0), RightEnd(25, 50, 0)
274 {}
275
277 : LeftStart(InLeftStart), LeftEnd(InLeftEnd), RightStart(InRightStart), RightEnd(InRightEnd)
278 {}
279
281 {
282 FNavigationSegmentLink Result = *this;
283 Result.LeftStart = Transformation.TransformPosition(Result.LeftStart);
284 Result.LeftEnd = Transformation.TransformPosition(Result.LeftEnd);
285 Result.RightStart = Transformation.TransformPosition(Result.RightStart);
286 Result.RightEnd = Transformation.TransformPosition(Result.RightEnd);
287
288 return Result;
289 }
290
292 {
293 FNavigationSegmentLink Result = *this;
294 Result.LeftStart += Translation;
295 Result.LeftEnd += Translation;
296 Result.RightStart += Translation;
297 Result.RightEnd += Translation;
298
299 return Result;
300 }
301};
302
303template<>
304struct TStructOpsTypeTraits< FNavigationSegmentLink > : public TStructOpsTypeTraits< FNavigationLinkBase >
305{
306};
307
309UCLASS(abstract, Config=Engine, Blueprintable, MinimalAPI)
311{
313
314 UPROPERTY(EditAnywhere, Category=OffMeshLinks)
316
317 UPROPERTY(EditAnywhere, Category=OffMeshLinks)
319
320 static ENGINE_API const TArray<FNavigationLink>& GetLinksDefinition(class UClass* LinkDefinitionClass);
321 static ENGINE_API const TArray<FNavigationSegmentLink>& GetSegmentLinksDefinition(class UClass* LinkDefinitionClass);
322
323#if WITH_EDITOR
324 ENGINE_API virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
325#endif
326
327 ENGINE_API void InitializeAreaClass() const;
328 ENGINE_API bool HasMetaAreaClass() const;
329 ENGINE_API bool HasAdjustableLinks() const;
330
331private:
332 uint32 bHasInitializedAreaClasses : 1;
333 uint32 bHasDeterminedMetaAreaClass : 1;
334 uint32 bHasMetaAreaClass : 1;
335 uint32 bHasDeterminedAdjustableLinks : 1;
336 uint32 bHasAdjustableLinks : 1;
337};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#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
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Engine.Build.cs:7
Definition Archive.h:1208
Definition UnrealType.h:3087
Definition Array.h:670
Definition EnumAsByte.h:22
Definition SubclassOf.h:30
Definition Class.h:3793
UE_STRING_CLASS Right(int32 Count) const &
Definition UnrealString.h.inl:1022
UE_FORCEINLINE_HINT UE_STRING_CLASS Left(int32 Count) const &
Definition UnrealString.h.inl:972
Definition NavAreaBase.h:14
Definition NavLinkDefinition.h:311
Definition Object.h:95
Definition NavLinkDefinition.h:20
Type
Definition NavLinkDefinition.h:22
@ BothWays
Definition NavLinkDefinition.h:23
@ Description
Definition PathFollowingComponent.h:177
@ false
Definition radaudio_common.h:23
Definition NavAgentSelector.h:9
Definition NavigationTypes.h:150
Definition NavLinkDefinition.h:31
Definition UnrealType.h:6865
Definition StructOpsTypeTraits.h:11
@ WithPostSerialize
Definition StructOpsTypeTraits.h:25
Definition StructOpsTypeTraits.h:46
Definition WeakObjectPtrTemplates.h:25