2017-09-12 22:42:36 +02:00
<?xml version="1.0" encoding="UTF-8" ?>
2024-02-12 14:55:02 +01:00
<class name= "NavigationRegion2D" inherits= "Node2D" experimental= "" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../class.xsd" >
2017-09-12 22:42:36 +02:00
<brief_description >
2023-04-28 22:59:03 +02:00
A traversable 2D region that [NavigationAgent2D]s can use for pathfinding.
2017-09-12 22:42:36 +02:00
</brief_description>
<description >
2023-04-28 22:59:03 +02:00
A traversable 2D region based on a [NavigationPolygon] that [NavigationAgent2D]s can use for pathfinding.
2021-03-08 20:56:33 +01:00
Two regions can be connected to each other if they share a similar edge. You can set the minimum distance between two vertices required to connect two edges by using [method NavigationServer2D.map_set_edge_connection_margin].
2022-12-11 18:02:35 +01:00
[b]Note:[/b] Overlapping two regions' navigation polygons is not enough for connecting two regions. They must share a similar edge.
2023-04-28 22:59:03 +02:00
The pathfinding cost of entering a region from another region can be controlled with the [member enter_cost] value.
2022-07-27 15:55:38 +02:00
[b]Note:[/b] This value is not added to the path cost when the start position is already inside this region.
2022-06-06 05:24:11 +02:00
The pathfinding cost of traveling distances inside this region can be controlled with the [member travel_cost] multiplier.
2022-08-21 04:21:01 +02:00
[b]Note:[/b] This node caches changes to its properties, so if you make changes to the underlying region [RID] in [NavigationServer2D], they will not be reflected in this node's properties.
2017-09-12 22:42:36 +02:00
</description>
<tutorials >
2023-01-11 06:05:04 +01:00
<link title= "Using NavigationRegions" > $DOCS_URL/tutorials/navigation/navigation_using_navigationregions.html</link>
2017-09-12 22:42:36 +02:00
</tutorials>
2022-04-30 13:27:30 +02:00
<methods >
2023-08-17 18:32:30 +02:00
<method name= "bake_navigation_polygon" >
<return type= "void" />
<param index= "0" name= "on_thread" type= "bool" default= "true" />
<description >
Bakes the [NavigationPolygon]. If [param on_thread] is set to [code]true[/code] (default), the baking is done on a separate thread.
</description>
</method>
2022-06-19 13:23:13 +02:00
<method name= "get_navigation_layer_value" qualifiers= "const" >
<return type= "bool" />
2022-08-06 20:11:48 +02:00
<param index= "0" name= "layer_number" type= "int" />
2022-06-19 13:23:13 +02:00
<description >
2022-08-12 15:36:48 +02:00
Returns whether or not the specified layer of the [member navigation_layers] bitmask is enabled, given a [param layer_number] between 1 and 32.
2022-06-19 13:23:13 +02:00
</description>
</method>
2023-05-17 16:24:09 +02:00
<method name= "get_navigation_map" qualifiers= "const" >
<return type= "RID" />
<description >
Returns the current navigation map [RID] used by this region.
</description>
</method>
2024-02-12 14:55:02 +01:00
<method name= "get_region_rid" qualifiers= "const" deprecated= "Use [method get_rid] instead." >
2023-10-23 03:55:35 +02:00
<return type= "RID" />
<description >
Returns the [RID] of this region on the [NavigationServer2D].
</description>
</method>
<method name= "get_rid" qualifiers= "const" >
2022-04-30 13:27:30 +02:00
<return type= "RID" />
<description >
Returns the [RID] of this region on the [NavigationServer2D]. Combined with [method NavigationServer2D.map_get_closest_point_owner] can be used to identify the [NavigationRegion2D] closest to a point on the merged navigation map.
</description>
</method>
2024-01-29 22:28:01 +01:00
<method name= "is_baking" qualifiers= "const" >
<return type= "bool" />
<description >
Returns [code]true[/code] when the [NavigationPolygon] is being baked on a background thread.
</description>
</method>
2022-06-19 13:23:13 +02:00
<method name= "set_navigation_layer_value" >
<return type= "void" />
2022-08-06 20:11:48 +02:00
<param index= "0" name= "layer_number" type= "int" />
<param index= "1" name= "value" type= "bool" />
2022-06-19 13:23:13 +02:00
<description >
2022-08-12 15:36:48 +02:00
Based on [param value], enables or disables the specified layer in the [member navigation_layers] bitmask, given a [param layer_number] between 1 and 32.
2022-06-19 13:23:13 +02:00
</description>
</method>
2023-05-17 16:24:09 +02:00
<method name= "set_navigation_map" >
<return type= "void" />
<param index= "0" name= "navigation_map" type= "RID" />
<description >
Sets the [RID] of the navigation map this region should use. By default the region will automatically join the [World2D] default navigation map so this function is only required to override the default map.
</description>
</method>
2022-04-30 13:27:30 +02:00
</methods>
2017-09-12 22:42:36 +02:00
<members >
2019-06-29 12:38:01 +02:00
<member name= "enabled" type= "bool" setter= "set_enabled" getter= "is_enabled" default= "true" >
2021-03-08 20:56:33 +01:00
Determines if the [NavigationRegion2D] is enabled or disabled.
</member>
2022-06-06 05:24:11 +02:00
<member name= "enter_cost" type= "float" setter= "set_enter_cost" getter= "get_enter_cost" default= "0.0" >
2023-10-02 20:11:43 +02:00
When pathfinding enters this region's navigation mesh from another regions navigation mesh the [member enter_cost] value is added to the path distance for determining the shortest path.
2022-06-06 05:24:11 +02:00
</member>
2022-06-14 23:34:43 +02:00
<member name= "navigation_layers" type= "int" setter= "set_navigation_layers" getter= "get_navigation_layers" default= "1" >
A bitfield determining all navigation layers the region belongs to. These navigation layers can be checked upon when requesting a path with [method NavigationServer2D.map_get_path].
2017-09-12 22:42:36 +02:00
</member>
2022-12-11 18:02:35 +01:00
<member name= "navigation_polygon" type= "NavigationPolygon" setter= "set_navigation_polygon" getter= "get_navigation_polygon" >
2021-03-08 20:56:33 +01:00
The [NavigationPolygon] resource to use.
2017-09-12 22:42:36 +02:00
</member>
2022-06-06 05:24:11 +02:00
<member name= "travel_cost" type= "float" setter= "set_travel_cost" getter= "get_travel_cost" default= "1.0" >
2023-10-02 20:11:43 +02:00
When pathfinding moves inside this region's navigation mesh the traveled distances are multiplied with [member travel_cost] for determining the shortest path.
2022-06-06 05:24:11 +02:00
</member>
2023-04-01 01:49:43 +02:00
<member name= "use_edge_connections" type= "bool" setter= "set_use_edge_connections" getter= "get_use_edge_connections" default= "true" >
If enabled the navigation region will use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin.
</member>
2017-09-12 22:42:36 +02:00
</members>
2023-08-17 18:32:30 +02:00
<signals >
<signal name= "bake_finished" >
<description >
Emitted when a navigation polygon bake operation is completed.
</description>
</signal>
<signal name= "navigation_polygon_changed" >
<description >
Emitted when the used navigation polygon is replaced or changes to the internals of the current navigation polygon are committed.
</description>
</signal>
</signals>
2017-09-12 22:42:36 +02:00
</class>