S&box Wiki

Revision Difference

SettingUpANavigationMesh#561158

<cat>Hammer.Basics</cat>⤶ <cat>Code.Misc</cat>⤶ <title>Setting Up A Navigation Mesh</title> <deprecated></deprecated>⤶ # What is a Navigation Mesh (Navmesh)? A navigation mesh is a bunch of precalculated shapes compiled with a map that let NPCs and other entities navigate around. A navigation mesh is a bunch of precalculated shapes that let NPCs, enemies, etc. navigate around. # How do I add one? ⤶ 1) In Hammer, in your map, create a `func_nav_markup` entity somewhere where you want the navmesh to be generated (it just has to be in a small part, it doesn't have to cover the entire area).⤶ ⤶ <upload src="b0cef/8db8a32cfb98b2e.png" size="565870" name="8db8a2b6c33d614.png" />⤶ ⤶ 2) On that entity, make sure `Walkable Seed` is ticked.⤶ ⤶ 3) Build your map with `Build nav` enabled, and you are done.⤶ ⤶ # Navmesh Hulls⤶ ⤶ Navmesh hulls represent that fact that different NPCs might have different sized "hulls". Imagine a cat, a human and an elephant - they are all different sizes of creature and so are able to navigate different kinds of spaces.⤶ ⤶ You can configure the hulls in Hammer by going to `Navigation` and ticking `Use Custom Generation Params`, but you usually don't need to. The default hull used is hull 0 which is the medium-sized hull (for humans and such).⤶ ⤶ You can control which hull is used through code:⤶ ⤶ ```⤶ var path = NavMesh.PathBuilder( myStartPosition )⤶ .WithAgentHull( NavAgentHull.Agent1 ) // The default is NavAgentHull.Default (hull 0).⤶ .Build( myEndPosition );⤶ ```⤶ ⤶ # Nav Preview⤶ ⤶ Once you have added the `func_nav_markup` you can preview what your navigation mesh will look like in Hammer by going to `Navigation` -> `Nav Preview`.⤶ ⤶ <upload src="b0cef/8db8a2bfb795eba.png" size="87014" name="image.png" /> ⤶ ⤶ The preview shows the passable space of each hull as a separate shade of blue.⤶ ⤶ Generally the preview should match how your navmesh behaves in-game, but if you are encountering problems, you can double-check by using the command `nav_edit 1` in-game. You can then cycle through the different hulls by running `nav_select_hull 0`, `nav_select_hull 1` and `nav_select_hull 2`.⤶ ⤶ <upload src="b0cef/8db8a3214b59b56.png" size="423269" name="image.png" />⤶ ⤶ ⤶ ⤶ ⤶ ⤶ https://docs.facepunch.com/s/sbox-dev/doc/navigation-vwoSUsEPJ9