I’m currently testing the transition of character movement to the NavWalking method. Within the PhysNavWalking(float deltaTime, int32 Iterations) function, the FindNavFloor(AdjustedDest, DestNavLocation) function is used to determine if the intended navigation destination is valid and to obtain its location. The search radius is set as const float SearchRadius = AgentProps.AgentRadius * 2.0f, which specifies the extent range when projecting a point on the NavMesh. Typically, this value is set to the character’s collision body radius, but if it’s set too large, it allows the character to move slightly beyond the NavMesh bounds. Even a slight deviation might still fall within the extent range, enabling movement. However, setting this value too small prevents leaving the NavMesh but may lead to movement failure on uneven terrains where FindNavFloor fails to detect the NavMesh, even though the character is on it.
What I’m aiming for is movement that strictly confines to the NavMesh without ever straying off it. Unfortunately, the basic Unreal PhysNavWalking does not seem to work neatly for this purpose. I’m looking for advice on this matter.