<?xml version="1.0" encoding="UTF-8" ?> <class name="NavigationPolygon" inherits="Resource" version="4.0"> <brief_description> A node that has methods to draw outlines or use indices of vertices to create navigation polygons. </brief_description> <description> There are two ways to create polygons. Either by using the [method add_outline] method, or using the [method add_polygon] method. Using [method add_outline]: [codeblocks] [gdscript] var polygon = NavigationPolygon.new() var outline = PackedVector2Array([Vector2(0, 0), Vector2(0, 50), Vector2(50, 50), Vector2(50, 0)]) polygon.add_outline(outline) polygon.make_polygons_from_outlines() $NavigationRegion2D.navpoly = polygon [/gdscript] [csharp] var polygon = new NavigationPolygon(); var outline = new Vector2[] { new Vector2(0, 0), new Vector2(0, 50), new Vector2(50, 50), new Vector2(50, 0) }; polygon.AddOutline(outline); polygon.MakePolygonsFromOutlines(); GetNode<NavigationRegion2D>("NavigationRegion2D").Navpoly = polygon; [/csharp] [/codeblocks] Using [method add_polygon] and indices of the vertices array. [codeblocks] [gdscript] var polygon = NavigationPolygon.new() var vertices = PackedVector2Array([Vector2(0, 0), Vector2(0, 50), Vector2(50, 50), Vector2(50, 0)]) polygon.vertices = vertices var indices = PackedInt32Array(0, 3, 1) polygon.add_polygon(indices) $NavigationRegion2D.navpoly = polygon [/gdscript] [csharp] var polygon = new NavigationPolygon(); var vertices = new Vector2[] { new Vector2(0, 0), new Vector2(0, 50), new Vector2(50, 50), new Vector2(50, 0) }; polygon.Vertices = vertices; var indices = new int[] { 0, 3, 1 }; polygon.AddPolygon(indices); GetNode<NavigationRegion2D>("NavigationRegion2D").Navpoly = polygon; [/csharp] [/codeblocks] </description> <tutorials> <link title="2D Navigation Demo">https://godotengine.org/asset-library/asset/117</link> </tutorials> <methods> <method name="add_outline"> <return type="void"> </return> <argument index="0" name="outline" type="PackedVector2Array"> </argument> <description> Appends a [PackedVector2Array] that contains the vertices of an outline to the internal array that contains all the outlines. You have to call [method make_polygons_from_outlines] in order for this array to be converted to polygons that the engine will use. </description> </method> <method name="add_outline_at_index"> <return type="void"> </return> <argument index="0" name="outline" type="PackedVector2Array"> </argument> <argument index="1" name="index" type="int"> </argument> <description> Adds a [PackedVector2Array] that contains the vertices of an outline to the internal array that contains all the outlines at a fixed position. You have to call [method make_polygons_from_outlines] in order for this array to be converted to polygons that the engine will use. </description> </method> <method name="add_polygon"> <return type="void"> </return> <argument index="0" name="polygon" type="PackedInt32Array"> </argument> <description> Adds a polygon using the indices of the vertices you get when calling [method get_vertices]. </description> </method> <method name="clear_outlines"> <return type="void"> </return> <description> Clears the array of the outlines, but it doesn't clear the vertices and the polygons that were created by them. </description> </method> <method name="clear_polygons"> <return type="void"> </return> <description> Clears the array of polygons, but it doesn't clear the array of outlines and vertices. </description> </method> <method name="get_outline" qualifiers="const"> <return type="PackedVector2Array"> </return> <argument index="0" name="idx" type="int"> </argument> <description> Returns a [PackedVector2Array] containing the vertices of an outline that was created in the editor or by script. </description> </method> <method name="get_outline_count" qualifiers="const"> <return type="int"> </return> <description> Returns the number of outlines that were created in the editor or by script. </description> </method> <method name="get_polygon"> <return type="PackedInt32Array"> </return> <argument index="0" name="idx" type="int"> </argument> <description> Returns a [PackedInt32Array] containing the indices of the vertices of a created polygon. </description> </method> <method name="get_polygon_count" qualifiers="const"> <return type="int"> </return> <description> Returns the count of all polygons. </description> </method> <method name="get_vertices" qualifiers="const"> <return type="PackedVector2Array"> </return> <description> Returns a [PackedVector2Array] containing all the vertices being used to create the polygons. </description> </method> <method name="make_polygons_from_outlines"> <return type="void"> </return> <description> Creates polygons from the outlines added in the editor or by script. </description> </method> <method name="remove_outline"> <return type="void"> </return> <argument index="0" name="idx" type="int"> </argument> <description> Removes an outline created in the editor or by script. You have to call [method make_polygons_from_outlines] for the polygons to update. </description> </method> <method name="set_outline"> <return type="void"> </return> <argument index="0" name="idx" type="int"> </argument> <argument index="1" name="outline" type="PackedVector2Array"> </argument> <description> Changes an outline created in the editor or by script. You have to call [method make_polygons_from_outlines] for the polygons to update. </description> </method> <method name="set_vertices"> <return type="void"> </return> <argument index="0" name="vertices" type="PackedVector2Array"> </argument> <description> Sets the vertices that can be then indexed to create polygons with the [method add_polygon] method. </description> </method> </methods> <constants> </constants> </class>