Godot Version
4.4.1
Question
Hi, I’m trying to set a NavigationPolygon to a NavigationRegion2D but then when I try to query the region to get a random point in it, it always return the Vector2 (0,0). It seems like the region isn’t well configured.
Here is a minimal reproduction of my issue :
What i tried so far
Using add_polygon of NavigationPolygon
extends Node
@onready var region: NavigationRegion2D = $NavigationRegion2D
func _ready() -> void:
region.navigation_polygon = NavigationPolygon.new()
var outline = PackedVector2Array([Vector2(-10.,-10.),Vector2(10.,-10.),Vector2(10.,10.), Vector2(-10.,10)])
region.navigation_polygon.add_outline(outline)
region.bake_navigation_polygon()
func _physics_process(delta: float) -> void:
var point = NavigationServer2D.map_get_random_point(region.get_navigation_map(), region.navigation_layers, true)
print(point)
Using NavigationServer2D.bake_from_source_geometry_data
extends Node
@onready var region: NavigationRegion2D = $NavigationRegion2D
func _ready() -> void:
region.navigation_polygon = NavigationPolygon.new()
var outline = PackedVector2Array([Vector2(-10.,-10.),Vector2(10.,-10.),Vector2(10.,10.), Vector2(-10.,10)])
var geometry = NavigationMeshSourceGeometryData2D.new()
geometry.add_traversable_outline(outline)
NavigationServer2D.bake_from_source_geometry_data(region.navigation_polygon, geometry)
func _physics_process(delta: float) -> void:
var point = NavigationServer2D.map_get_random_point(region.get_navigation_map(), region.navigation_layers, true)
print(point)
No error or warning has been raised.
Does anyone have any clues why this isn’t working ? ![]()
