You just need this in your movement component:
void UMyPathFollowingComponent::SetMoveSegment(uint32 SegmentStartIndex)
{
const uint16 AreaFlags = FNavMeshNodeFlags(Path->PathPoints[SegmentStartIndex].Flags).AreaFlags;
const uint16 JumpFlag = uint16(1 << UUNavArea_Jump::Jump);
if ((AreaFlags & JumpFlag) != 0)
{
// jumping code here
}
}
and remember to properly set [FONT=Lucida Console]AreaFlags for your navigation area:
UUNavArea_Jump::UUNavArea_Jump(const class FPostConstructInitializeProperties& PCIP)
: Super(PCIP)
{
AreaFlags = (1 << UUNavArea_Jump::Jump);
}
Not setting [FONT=Lucida Console]AreaFlags to proper value was the reason it was not working for you initially.
Regarding partial paths these should get accepted by default, so I’d need to know your exact setup to be able to say more. I suggest you debugged your issue yourself - you’ll need the knowledge how to do it eventually anyway When debugging failed pathfinding [FONT=Lucida Console]UNavigationComponent::GeneratePathTo is a good starting point.