Description

 Streaming out the navmesh and streaming the area back into the world before the GC runs causes the navmesh streamed back into the world to only have navmesh tiles on a layer with tiles that would be above or below it missing. If you run with LevelStreaming.ShouldReuseUnloadedButStillAroundLevels 0, the navmesh tiles are streamed in as expected. This also works as expected if using WP Static navmesh with tiles on all layers still being present without the need to force GC or use the CVar.

This also affects navmesh tiles that are not in a Level Instance but have multiple layers. 

Steps to Reproduce
  1. Create world partition world
  2. Add a Level Instance to the world with some geometry with multiple unconnected levels that should have navmesh on top of each other
  3. Build "Dynamic modifiers only" world partition navmesh
  4. Go close to level instance so that it streams in with its navmesh, back away so that navmesh unloads and then quickly approach again so that it loads the navmesh again without having it GCd
  5. Notice that only one level of the navmesh chunk for the LI doesn't load again correctly and you see "Null rawdata. This can be caused by the reuse of unloaded sublevels. 's.ForceGCAfterLevelStreamedOut 1' can be used until this gets fixed." in the log

 

Expected Result: The navmesh streams back in with all layers covered

Actual Result: The navmesh will only be on one layer of the meshes with the other layers missing their navmesh tiles.

Have Comments or More Details?

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

1
Login to Vote

Fixed
ComponentUE - AI - Navigation
Affects Versions5.5
Target Fix5.6
Fix Commit39827480
CreatedFeb 6, 2025
ResolvedFeb 7, 2025
UpdatedFeb 11, 2025
View Jira Issue