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:
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.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-308998 in the post.