UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NavLinkCustomInterface.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
10#include "UObject/Interface.h"
11#include "NavAreas/NavArea.h"
13#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_4
14#include "Engine/World.h"
15#endif
17#include "NavLinkCustomInterface.generated.h"
18
33UINTERFACE(MinimalAPI, meta=(CannotImplementInterfaceInBlueprint))
38
40{
42
43
44 virtual void GetLinkData(FVector& LeftPt, FVector& RightPt, ENavLinkDirection::Type& Direction) const {};
45
47 virtual void GetSupportedAgents(FNavAgentSelector& OutSupportedAgents) const {};
48
50 virtual TSubclassOf<UNavArea> GetLinkAreaClass() const { return nullptr; }
51
52 virtual FNavLinkAuxiliaryId GetAuxiliaryId() const { return FNavLinkAuxiliaryId::Invalid; }
53
54 UE_DEPRECATED(5.3, "LinkIds are now based on a FNavLinkId. Call GetId() instead. This function only returns Invalid Id.")
55 virtual uint32 GetLinkId() const final { return static_cast<uint32>(FNavLinkId::Invalid.GetId()); }
56
60 virtual FNavLinkId GetId() const { return FNavLinkId::Invalid; }
61
62 UE_DEPRECATED(5.3, "LinkIds are now based on a FNavLinkId. Call the version of this function that takes a FNavLinkId. This function now has no effect.")
63 virtual void UpdateLinkId(uint32 NewUniqueId) final {}
64
66 virtual void UpdateLinkId(FNavLinkId NewUniqueId) {}
67
69 NAVIGATIONSYSTEM_API virtual UObject* GetLinkOwner() const;
70
74 virtual bool IsLinkPathfindingAllowed(const UObject* Querier) const { return true; }
75
79 virtual bool OnLinkMoveStarted(class UObject* PathComp, const FVector& DestPoint) { return false; }
80
82 virtual void OnLinkMoveFinished(class UObject* PathComp) {}
83
85 virtual bool IsLinkUsingCustomReachCondition(const UObject* PathComp) const { return false; }
86
90 virtual bool HasReachedLinkStart(const UObject* PathComp, const FVector& CurrentLocation, const FNavPathPoint& LinkStart, const FNavPathPoint& LinkEnd) const { return true; }
91
92 UE_DEPRECATED(5.3, "LinkIds are now based on FNavLinkId using FNavLinkId::GenerateUniqueId(). This function will still generate an incremental Id however it does not work well in all circumstances.")
93 static NAVIGATIONSYSTEM_API uint32 GetUniqueId();
94
96 UE_DEPRECATED(5.3, "LinkIds are now based on FNavLinkId. If your project is still using any of the old incremental Ids (saved in actors in levels or licensee code) then this function must be called still (typically by existing engine code), otherwise it is not necessary.")
97 static NAVIGATIONSYSTEM_API void UpdateUniqueId(FNavLinkId AlreadyUsedId);
98
99 UE_DEPRECATED(5.3, "LinkIds are now based on FNavLinkId. You may need to call the other version of this function that takes a FNavLinkId. This function has no effect.")
100 static void UpdateUniqueId(uint32 AlreadyUsedId) {}
101
104
105 UE_DEPRECATED(5.3, "LinkIds are now based on a FNavLinkId Hash. If your project is still using any of the old incremental Ids then this function must be called still (typically by existing engine code), otherwise it is not necessary.")
106 static NAVIGATIONSYSTEM_API void ResetUniqueId();
107
108 static NAVIGATIONSYSTEM_API void OnPreWorldInitialization(UWorld* World, const FWorldInitializationValues IVS);
109
110 UE_DEPRECATED(5.3, "LinkIds are now based on FNavLinkId using FNavLinkId::GenerateUniqueId().")
111 static uint32 NextUniqueId;
112};
113
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UINTERFACE(...)
Definition ObjectMacros.h:780
#define GENERATED_IINTERFACE_BODY(...)
Definition ObjectMacros.h:770
#define GENERATED_UINTERFACE_BODY(...)
Definition ObjectMacros.h:769
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition NavLinkCustomInterface.h:40
Definition SubclassOf.h:30
Definition Interface.h:19
Definition NavLinkCustomInterface.h:35
Definition Object.h:95
Definition World.h:918
Type
Definition NavLinkDefinition.h:22
Definition NavAgentSelector.h:9
Definition NavigationTypes.h:107
static ENGINE_API const FNavLinkAuxiliaryId Invalid
Definition NavigationTypes.h:135
Definition NavigationTypes.h:150
uint64 GetId() const
Definition NavigationTypes.h:175
static ENGINE_API const FNavLinkId Invalid
Definition NavigationTypes.h:212
Definition NavigationTypes.h:276
Definition WorldInitializationValues.h:9