Unity 3D Game Engine – Pathfinding – NavMesh Baking

Pathfinding or pathing is the plotting, by a computer application, of the shortest route between two points. It is a more practical variant on solving mazes.

Scene

1. MAIN TOP MENU> Gameobject> Create Other> Plane, name it ‘ground’

2. MAIN TOP MENU> Gameobject> Create Other> Sphere, name it ‘enemy’

3. MAIN TOP MENU> Gameobject> Create Other> Cube, name it ‘wall’> DRAG AND DROP inside ‘Prefab’ Folder> Duplicate to create a little labyrinth

Baking – create

To speedup Pathfinding Unity creates a simplified mesh that represents the walkable area.

4. MAIN TOP MENU> Window> Navigation

5. Hierarchy> select all walls e ground> Navigation> Object> check ‘Navigation Static’

OR

Hierarchy> select wall> Inspector> TOP RIGHT check ‘Static’

IMPORTANT: the ‘enemy’ has to have ‘Static’ unchecked.

Notice: it is necessary define the static game objects in the scene

6. Navigation> Object> Navigation Layer> Default, Not Walkable, Jump

7. Navigation> Layers> define:
– name
– cost: maggiore è il costo, più diffice è il percorso, ad esempio un marciapiede avrà cost=1, un terreno fangoso cost=3, quando verrà calcolato il percorso migliore il player guidato dal computer preferirà il percorso con un cost più basso.

8. Navigation> Bake> setup parameters:

General>
– Radius: how close a navigating character can get to a wall (quanto si può avvicinare al muro il personaggio)
– Height: the height of the area may not be reachable (altezza massima dell’area raggiungibile)
– Max Slope: the threshold of steepness where a ramp becomes a wall (oltre la pendenza definita l’area è considerata un muro)
– Step Height: any step greater than this height results in a disconnected walkable area (oltre questa altezza il personaggio viene bloccato)

General Off Mesh Links>
– Drop Height:
– Jump Distance:

Advanced
– Min Region Area: superficie minima che verra inclusa nell’area calpestabile, questo parametro è per evitare eccessivi frazionamenti della NavMesh
– With Inaccurancy%: precisione nel calcolo della larghezza
– Height Inaccurancy%: precisione nel calcolo dell’altezza
– Height Mesh:

7. Navigation> BOTTOM RIGHT> ‘Bake’, a blue NavMesk appears!

Baking – delete

Navigation> BOTTOM RIGHT> ‘Clear’, it removes the NavMesh!