UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NavMovementInterface.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "UObject/Interface.h"
9
10#include "NavMovementInterface.generated.h"
11
12#define UE_API ENGINE_API
13
15
19UINTERFACE(MinimalAPI, NotBlueprintable)
24
26{
28
29public:
30 // Begin: Functions to be implemented by objects inheriting this interface
32 virtual bool CanStartPathFollowing() const = 0;
33
36 virtual bool CanStopPathFollowing() const = 0;
37
42
47
54
56 UFUNCTION(BlueprintCallable, Category="AI|NavMovement")
58
60 UFUNCTION(BlueprintCallable, Category="AI|NavMovement")
62
65
68
69 // Movement specific code but not specific to nav movement - could probably be pulled out into a separate interface if desired
72
75
78
81
84
86 virtual void GetSimpleCollisionCylinder(float& CollisionRadius, float& CollisionHalfHeight) const = 0;
87
90
93
96
98 UFUNCTION(BlueprintCallable, Category="AI|NavMovement")
100
102 UFUNCTION(BlueprintCallable, Category="AI|NavMovement")
104
106 UFUNCTION(BlueprintCallable, Category="Movement")
107 virtual bool IsCrouching() const = 0;
108
110 UFUNCTION(BlueprintCallable, Category="Movement")
111 virtual bool IsFalling() const = 0;
112
114 UFUNCTION(BlueprintCallable, Category="Movement")
115 virtual bool IsMovingOnGround() const = 0;
116
118 UFUNCTION(BlueprintCallable, Category="Movement")
119 virtual bool IsSwimming() const = 0;
120
122 UFUNCTION(BlueprintCallable, Category="Movement")
123 virtual bool IsFlying() const = 0;
124 // End: Functions to be implemented by objects inheriting this interface
125
126
127 // Begin: Functions to be implemented here for shared functionality
129 UFUNCTION(BlueprintCallable, Category="AI|Movement")
131
133 UFUNCTION(BlueprintCallable, Category="AI|Movement")
135
138
140 UE_API virtual float GetPathFollowingBrakingDistance(float MaxSpeed) const;
141
144
147
150
152 inline virtual bool CanEverJump() const { return GetNavAgentPropertiesRef().bCanJump; }
153
155 inline virtual bool CanEverMoveOnGround() const { return GetNavAgentPropertiesRef().bCanWalk; }
156
158 inline virtual bool CanEverSwim() const { return GetNavAgentPropertiesRef().bCanSwim; }
159
161 inline virtual bool CanEverFly() const { return GetNavAgentPropertiesRef().bCanFly; }
162 // End: Functions to be implemented here for shared functionality
163};
164
165#undef UE_API
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_API
Definition NavMovementInterface.h:12
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define UINTERFACE(...)
Definition ObjectMacros.h:780
Definition NavMovementInterface.h:26
virtual void UpdateNavAgent(const UObject &ObjectToUpdateFrom)=0
virtual const FNavMovementProperties & GetNavMovementProperties() const =0
virtual bool IsFalling() const =0
virtual bool CanStopPathFollowing() const =0
virtual FNavMovementProperties * GetNavMovementProperties()=0
virtual UE_API void StopActiveMovement()
Definition NavMovementInterface.cpp:9
virtual bool IsFlying() const =0
virtual UE_API float GetPathFollowingBrakingDistance(float MaxSpeed) const
Definition NavMovementInterface.cpp:37
virtual const IPathFollowingAgentInterface * GetPathFollowingAgent() const =0
virtual void ResetMoveState()=0
virtual bool IsSwimming() const =0
virtual FVector GetVelocityForNavMovement() const =0
virtual bool CanEverFly() const
Definition NavMovementInterface.h:161
virtual bool IsCrouching() const =0
UE_API void SetFixedBrakingDistance(float DistanceToEndOfPath)
Definition NavMovementInterface.cpp:43
virtual bool IsMovingOnGround() const =0
virtual FNavAgentProperties & GetNavAgentPropertiesRef()=0
virtual const FNavAgentProperties & GetNavAgentPropertiesRef() const =0
virtual bool CanEverMoveOnGround() const
Definition NavMovementInterface.h:155
virtual FVector GetFeetLocation() const =0
virtual float GetMaxSpeedForNavMovement() const =0
UE_API FVector GetNavLocation() const
Definition NavMovementInterface.cpp:31
virtual FVector GetSimpleCollisionCylinderExtent() const =0
virtual void StopMovementImmediately()=0
virtual FBasedPosition GetFeetLocationBased() const =0
virtual bool CanEverSwim() const
Definition NavMovementInterface.h:158
virtual void SetPathFollowingAgent(IPathFollowingAgentInterface *InPathFollowingAgent)=0
UE_API bool UseAccelerationForPathFollowing() const
Definition NavMovementInterface.cpp:53
virtual void GetSimpleCollisionCylinder(float &CollisionRadius, float &CollisionHalfHeight) const =0
virtual TObjectPtr< UObject > GetUpdatedObject() const =0
virtual FVector GetLocation() const =0
virtual bool CanStartPathFollowing() const =0
virtual void RequestPathMove(const FVector &MoveInput)=0
virtual void RequestDirectMove(const FVector &MoveVelocity, bool bForceMaxSpeed)=0
virtual IPathFollowingAgentInterface * GetPathFollowingAgent()=0
virtual bool CanEverCrouch() const
Definition NavMovementInterface.h:149
virtual UE_API void StopMovementKeepPathing()
Definition NavMovementInterface.cpp:23
virtual bool CanEverJump() const
Definition NavMovementInterface.h:152
virtual FVector GetForwardVector() const =0
virtual UObject * GetOwnerAsObject() const =0
Definition PathFollowingAgentInterface.h:21
Definition Interface.h:19
Definition NavMovementInterface.h:21
Definition Object.h:95
Definition EngineTypes.h:1918
uint8 bCanCrouch
Definition NavigationTypes.h:393
uint8 bCanWalk
Definition NavigationTypes.h:401
uint8 bCanJump
Definition NavigationTypes.h:397
uint8 bCanFly
Definition NavigationTypes.h:409
uint8 bCanSwim
Definition NavigationTypes.h:405
Definition NavigationTypes.h:453
Definition NavigationTypes.h:426
Definition ObjectPtr.h:488