Two nav meshes at the same location but is affected by different obstacles

I’m working on a game where the player can traverse through 3D and 2D. Because of this, the AI also needs to share the same behavior. However, to do this, I need to have a nav mesh bounds that is only affected by 3D obstacles and another that is only affected by 2D obstacles.

My plan was to update the 3D nav mesh bounds when the 3D obstacles are affected by navigation and set that to false before setting the equivalent variable in 2D obstacles to true. Finally, I would update the 2D nav mesh bounds.

I came across OnNavigationBoundsUpdated() but using it in C++ apparently requires Runtime Generation in the Project Settings to be set to Dynamic (which updates all the nav mesh bounds at once when any changes happen, like setting whether obstacles are affected by navigation.). It’s setting I am trying to avoid because I could potentially be updating over 300 obstacles in a span of a second.

Now, I am not asking for a solution. I am asking whether this is even possible. I can change my game’s design if it isn’t possible but due to my inexperience with Unreal C++ and Blueprints, it’s hard to know whether I should drop this idea or not.

So, you want a switch that makes one nav mesh stop working and the other one start working (and back and forth the other way when needed) during runtime?

I’m not sure if I can answer your question, but I’m just making sure I understand what you are asking.

Maybe there is some way to just turn their collision on and off?