Is this what a baked navigation mesh is supposed to look like?

Godot Version

4.4.stable

Question

I haven’t used navigation before, and my enemy is not moving. I have constantly tried fixing it, but I just now thought it might just be an improper navigation mesh. Is there supposed to be multiple big colored triangles everywhere? Or is it all meant to be one specific color and one specific shape? I feel like something is off about the way this navigation mesh looks. (I have 3 collisionshapes, one for the floor and two for two little platforms from the ground, and a csg combiner with csg boxes)

that is what a navigation mesh looks like, here and in most engines.

CSGs are for prototyping only. you need to replace them with StaticBodies with collider nodes for the final version of your game. you have boxes, cylinders, but you can also create a mesh in blender and end the name in col and it will turn into a collider when importing to godot, like: building_col or building-col. there’s also a button in the mesh menu of a meshinstance3D to create a collider from the shape.

your “enemy” needs a navigation agent and must be a child of the navigation region.

navigation_region
    |-> enemy_scene (character_controller?)
           |-> agent
           |-> collider

My enemy already has a navigation agent and a collider, and my csg nodes are children of a static body. I know csg nodes are for only prototyping, and I made them children of a static body under the navigation region because I thought it would work good. Are these nodes good or am I doing something wrong, and do I 100% need to use something other than csg nodes for pathfinding to work


csg are not related to pathfinding, it’s just good practice to not use them in a way in which they can’t be removed.
they also lack UV options so they are reliant on the material for UV.
a level combine already provides physics options, as do csgs. if you only need them for visual representation it is an option to just use a meshinstance3D with box mesh, it will be easier to replace them later.

that is not the problem.

well your enemy is child of navigation region, and it has an agent. but the player is not. but if the player is not controlled by pathfinding, like in an action or platformer game, that could be fine.

so that is not the problem.

I suspect this has something to do with the code.
you need to give the agent a target_position, and you need to get the next_path_position in the agent and look and move towards it.
the docs have an example code: