NavigationPolygon

Inherits: Resource < Reference < Object

A node that has methods to draw outlines or use indices of vertices to create navigation polygons.

Description

There are two ways to create polygons. Either by using the add_outline method, or using the add_polygon method.

Using add_outline:

  1. var polygon = NavigationPolygon.new()
  2. var outline = PoolVector2Array([Vector2(0, 0), Vector2(0, 50), Vector2(50, 50), Vector2(50, 0)])
  3. polygon.add_outline(outline)
  4. polygon.make_polygons_from_outlines()
  5. $NavigationPolygonInstance.navpoly = polygon

Using add_polygon and indices of the vertices array.

  1. var polygon = NavigationPolygon.new()
  2. var vertices = PoolVector2Array([Vector2(0, 0), Vector2(0, 50), Vector2(50, 50), Vector2(50, 0)])
  3. polygon.set_vertices(vertices)
  4. var indices = PoolIntArray([0, 1, 2, 3])
  5. polygon.add_polygon(indices)
  6. $NavigationPolygonInstance.navpoly = polygon

Tutorials

Methods

void

add_outline ( PoolVector2Array outline )

void

add_outline_at_index ( PoolVector2Array outline, int index )

void

add_polygon ( PoolIntArray polygon )

void

clear_outlines ( )

void

clear_polygons ( )

NavigationMesh

get_mesh ( )

PoolVector2Array

get_outline ( int idx ) const

int

get_outline_count ( ) const

PoolIntArray

get_polygon ( int idx )

int

get_polygon_count ( ) const

PoolVector2Array

get_vertices ( ) const

void

make_polygons_from_outlines ( )

void

remove_outline ( int idx )

void

set_outline ( int idx, PoolVector2Array outline )

void

set_vertices ( PoolVector2Array vertices )

Method Descriptions

Appends a PoolVector2Array that contains the vertices of an outline to the internal array that contains all the outlines. You have to call make_polygons_from_outlines in order for this array to be converted to polygons that the engine will use.


Adds a PoolVector2Array that contains the vertices of an outline to the internal array that contains all the outlines at a fixed position. You have to call make_polygons_from_outlines in order for this array to be converted to polygons that the engine will use.


Adds a polygon using the indices of the vertices you get when calling get_vertices.


  • void clear_outlines ( )

Clears the array of the outlines, but it doesn’t clear the vertices and the polygons that were created by them.


  • void clear_polygons ( )

Clears the array of polygons, but it doesn’t clear the array of outlines and vertices.


Returns the NavigationMesh resulting from this navigation polygon. This navmesh can be used to update the navmesh of a region with the NavigationServer.region_set_navmesh API directly (as 2D uses the 3D server behind the scene).


Returns a PoolVector2Array containing the vertices of an outline that was created in the editor or by script.


  • int get_outline_count ( ) const

Returns the number of outlines that were created in the editor or by script.


Returns a PoolIntArray containing the indices of the vertices of a created polygon.


  • int get_polygon_count ( ) const

Returns the count of all polygons.


Returns a PoolVector2Array containing all the vertices being used to create the polygons.


  • void make_polygons_from_outlines ( )

Creates polygons from the outlines added in the editor or by script.


  • void remove_outline ( int idx )

Removes an outline created in the editor or by script. You have to call make_polygons_from_outlines for the polygons to update.


Changes an outline created in the editor or by script. You have to call make_polygons_from_outlines for the polygons to update.


Sets the vertices that can be then indexed to create polygons with the add_polygon method.