UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NavLocalGridManager.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"
6#include "UObject/Object.h"
8#include "NavLocalGridData.h"
9#include "NavLocalGridManager.generated.h"
10
18
26UCLASS(Experimental, MinimalAPI)
28{
30public:
31
33 AIMODULE_API int32 AddGridData(const FNavLocalGridData& GridData, bool bUpdate = true);
34
36 AIMODULE_API void RemoveGridData(int32 GridId, bool bUpdate = true);
37
39 AIMODULE_API void RebuildGrids();
40
42 AIMODULE_API bool FindPath(const FVector& Start, const FVector& End, TArray<FVector>& PathPoints) const;
43
45 AIMODULE_API bool SetCellSize(float CellSize);
46
48 static float GetCellSize() { return GridCellSize; }
49
51 AIMODULE_API void SetMaxActiveSources(int32 NumActiveSources);
52
54 int32 GetMaxActiveSources() const { return MaxActiveSourceGrids; }
55
57 bool HasSourceGridLimit() const { return MaxActiveSourceGrids > 0; }
58
60 AIMODULE_API void UpdateAccessTime(int32 CombinedGridIdx);
61
63 int32 GetNumSources() const { return SourceGrids.Num(); }
64
66 int32 GetNumGrids() const { return CombinedGrids.Num(); }
67
69 const FNavLocalGridData& GetSourceData(int32 SourceIdx) const { return SourceGrids[SourceIdx]; }
70
72 const FNavLocalGridData& GetGridData(int32 GridIdx) const { return CombinedGrids[GridIdx]; }
73
75 AIMODULE_API uint8 GetGridValueAt(const FVector& WorldLocation) const;
76
78 AIMODULE_API int32 GetGridIndex(const FVector& WorldLocation) const;
79
81 int32 GetVersion() const { return VersionNum; }
82
83 UFUNCTION(BlueprintCallable, Category = "AI|Navigation", meta = (WorldContext = "WorldContextObject"))
84 static AIMODULE_API bool SetLocalNavigationGridDensity(UObject* WorldContextObject, float CellSize);
85
87 UFUNCTION(BlueprintCallable, Category = "AI|Navigation", meta = (WorldContext = "WorldContextObject"))
88 static AIMODULE_API int32 AddLocalNavigationGridForPoint(UObject* WorldContextObject, const FVector& Location, const int32 Radius2D = 5, const float Height = 100.0f, bool bRebuildGrids = true);
89
91 UFUNCTION(BlueprintCallable, Category = "AI|Navigation", meta = (WorldContext = "WorldContextObject"))
92 static AIMODULE_API int32 AddLocalNavigationGridForPoints(UObject* WorldContextObject, const TArray<FVector>& Locations, const int32 Radius2D = 5, const float Height = 100.0f, bool bRebuildGrids = true);
93
94 UFUNCTION(BlueprintCallable, Category = "AI|Navigation", meta = (WorldContext = "WorldContextObject"))
95 static AIMODULE_API int32 AddLocalNavigationGridForBox(UObject* WorldContextObject, const FVector& Location, FVector Extent = FVector(1,1,1), FRotator Rotation = FRotator::ZeroRotator, const int32 Radius2D = 5, const float Height = 100.0f, bool bRebuildGrids = true);
96
97 UFUNCTION(BlueprintCallable, Category = "AI|Navigation", meta = (WorldContext = "WorldContextObject"))
98 static AIMODULE_API int32 AddLocalNavigationGridForCapsule(UObject* WorldContextObject, const FVector& Location, float CapsuleRadius, float CapsuleHalfHeight, const int32 Radius2D = 5, const float Height = 100.0f, bool bRebuildGrids = true);
99
100 UFUNCTION(BlueprintCallable, Category = "AI|Navigation", meta = (WorldContext = "WorldContextObject"))
101 static AIMODULE_API void RemoveLocalNavigationGrid(UObject* WorldContextObject, int32 GridId, bool bRebuildGrids = true);
102
103 UFUNCTION(BlueprintCallable, Category = "AI|Navigation", meta = (WorldContext = "WorldContextObject"))
104 static AIMODULE_API bool FindLocalNavigationGridPath(UObject* WorldContextObject, const FVector& Start, const FVector& End, TArray<FVector>& PathPoints);
105
107 static AIMODULE_API UNavLocalGridManager* GetCurrent(const UObject* WorldContextObject);
108
109#if WITH_ENGINE
110 AIMODULE_API virtual UWorld* GetWorld() const override;
111#endif
112
113protected:
114
117
119
124
126 AIMODULE_API virtual void ProjectGrids(const TArray<int32>& GridIndices);
127
129 AIMODULE_API bool UpdateSourceGrids();
130};
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
return true
Definition ExternalRpcRegistry.cpp:601
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Array.h:670
Definition NavLocalGridManager.h:28
bool HasSourceGridLimit() const
Definition NavLocalGridManager.h:57
uint32 bNeedsRebuilds
Definition NavLocalGridManager.h:123
TArray< FCombinedNavGridData > CombinedGrids
Definition NavLocalGridManager.h:115
int32 VersionNum
Definition NavLocalGridManager.h:120
int32 NextGridId
Definition NavLocalGridManager.h:121
int32 GetNumSources() const
Definition NavLocalGridManager.h:63
static AIMODULE_API float GridCellSize
Definition NavLocalGridManager.h:118
TArray< FNavLocalGridData > SourceGrids
Definition NavLocalGridManager.h:116
int32 GetVersion() const
Definition NavLocalGridManager.h:81
const FNavLocalGridData & GetGridData(int32 GridIdx) const
Definition NavLocalGridManager.h:72
int32 GetNumGrids() const
Definition NavLocalGridManager.h:66
int32 MaxActiveSourceGrids
Definition NavLocalGridManager.h:122
const FNavLocalGridData & GetSourceData(int32 SourceIdx) const
Definition NavLocalGridManager.h:69
static float GetCellSize()
Definition NavLocalGridManager.h:48
int32 GetMaxActiveSources() const
Definition NavLocalGridManager.h:54
Definition Object.h:95
Definition World.h:918
Definition RobinHoodHashTable.h:18
Definition NavLocalGridManager.h:12
FCombinedNavGridData()
Definition NavLocalGridManager.h:15
FCombinedNavGridData(const TArray< FNavLocalGridData > &SourceGrids)
Definition NavLocalGridManager.h:16
TArray< int32 > SourceIds
Definition NavLocalGridManager.h:13
Definition NavLocalGridData.h:24