10. Navigation Mesh Generation

Genereer dynamisch een NavigationMesh van road tiles voor pathfinding

Overzicht

In dit hoofdstuk leer je:

  • RoadNavigation.cs (NavigationRegion3D) maken

  • Dynamic NavMesh generation van road tiles

  • GetRoadCells() helper implementeren

  • Manual geometry creation (vertices + polygons)

  • RegenerateNavigationMesh() aanroepen bij road changes

  • NavigationMesh.Clear() en AddPolygon()

circle-info

Wat is een Navigation System?

Godot's navigation system gebruikt NavigationMesh voor pathfinding. Een NavigationMesh is een verzameling van polygonen die bepalen waar characters kunnen lopen/rijden.

In dit hoofdstuk:

  • Genereer een NavigationMesh dynamisch vanaf de GridMap roads

  • Elke road tile wordt een quad polygon (4 vertices)

  • Update de mesh automatisch wanneer wegen worden toegevoegd/verwijderd

  • Voertuigen gebruiken deze mesh om routes te berekenen (hoofdstuk 11)

Waarom dynamisch? Static navigation meshes werken niet voor city builders - spelers bouwen het wegennetwerk tijdens gameplay! De mesh moet real-time regenereren.

RoadNavigation script aanmaken

Maak een nieuwe script die de navigation geometry genereert.

Nieuwe Godot-specifieke elementen:

circle-check

IsRoadTile helper method

Voeg dezelfde helper toe als in RoadPlacer om road tiles te identificeren.

circle-check

GetRoadCells implementeren

Maak een method om alle road tiles in de GridMap te vinden.

Nieuwe Godot-specifieke elementen:

circle-check

UpdateNavMesh implementeren

Maak een method om de NavigationRegion3D te forceren de mesh te updaten.

circle-check

RegenerateNavigationMesh method

Maak de hoofdmethod die de navigation mesh regenereert wanneer wegen veranderen.

circle-check

CreateNavigationGeometry implementeren

Maak een method die quad polygonen genereert voor elke road tile.

Nieuwe C#-specifieke elementen:

circle-check

_Ready implementeren

Genereer de initiΓ«le navigation mesh wanneer de scene start.

circle-check

RoadNavigation node toevoegen

Voeg de RoadNavigation node toe aan de Main scene en configureer.

circle-check

RoadPlacer koppelen aan RoadNavigation

Update RoadPlacer om de navigation mesh te regenereren bij elke wijziging.

circle-check

RoadNavigation export instellen

Koppel de RoadNavigation node in de Inspector.

circle-check

Testen

Test of de navigation mesh correct wordt gegenereerd.

circle-check

Volledig script

chevron-rightKlik hier voor het volledige RoadNavigation.cs scripthashtag

Laatst bijgewerkt