Floating AI

Hey guys, need some help. I’m doing a top-down shooter where the player character is a ship that moves on a flat plane, but can climb or descend ramps - the move plane gets to a new height.
I’m doing an AI template and I want to have them descend or ascend to the player height level.

I’m spawning them in a volume and have them stick to walls or floor at random heights. First step in my behaviour tree is getting them to move on Z to the player height level. However, they won’t move at all unless they’re sitting right on top of the navmesh - theyr movement is constrained to the navmesh plane. How do I implement an Z offset to them? I want them to use the navmesh (which is just a flat plane with some obstructions) but float on top of it. They won’t be flying and I don’t need 3D navigation. Z movement will only happen as a separate step, then they’ll be moving or attacking on a flat plane above (or in some cases below) the navmesh. I want to use navigation points on the navmesh, but have my enemies on a variable offset from it. Any ideas?

Ok guys, I’ve searched everywhere and found one solution here. I’m separating the root capsule component from the skeletal meshes - I’m spawning the enemies at different heights but at runtime I move the root to zero height plane and add an offset with the respective distance to the skeletal mesh. So the enemies appear to be floating but in fact the root is stuck and moving on the navmesh. I then can have the offset location back to zero when these drones ascend or descend to player level.