Description

When calling EncompassesPoint on an ANavMeshBoundsVolume, the method always returns false even if the target point is clearly within the visible volume bounds.

This occurs because AVolume::EncompassesPoint relies on UBrushComponent::GetSquaredDistanceToCollision(), which internally uses FBodyInstance. However, ANavMeshBoundsVolume does not initialize a valid FBodyInstance. As a result, the physics query path is never executed and the FPhysInterface_Chaos::GetSquaredDistanceToBody method returns false.

As a workaround, the licensee is using GetBounds().GetBox().IsInside(FVector Location), which behaves correctly. However, a valid execution of EncompassesPoint is preferred for consistency.

Tested and reproduced in:

  • UE 5.5
  • UE 5.6
  • UE5/Main at CL 44397245

 

Steps to Reproduce

1. Open the attached repro project.
2. Play the level in editor: the level contains a basic actor placed inside the bounds of a scaled ANavMeshBoundsVolume.
3. Press the A Key: this triggers a call to EncompassesPoint.
4. Observe the Output Log: the result is false, indicating the actor is not considered inside the volume.

Expected result: the call to EncompassesPoint() should return true since the actor is clearly within the bounds of a NavMeshBoundsVolume.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-308998 in the post.

0
Login to Vote

Unresolved
ComponentUE - AI
Affects Versions5.55.65.7
CreatedAug 3, 2025
UpdatedSep 11, 2025
View Jira Issue