Browse Source

Fix missing NavigationObstacle property updates in constructor

Fixes missing NavigationObstacle property updates in constructor.

(cherry picked from commit 618d9492d9e00c1fb405967e47bb811afa63082a)
smix8 1 year ago
parent
commit
5c709cfc7b
2 changed files with 9 additions and 11 deletions
  1. 4 4
      scene/2d/navigation_obstacle_2d.cpp
  2. 5 7
      scene/3d/navigation_obstacle_3d.cpp

+ 4 - 4
scene/2d/navigation_obstacle_2d.cpp

@@ -148,10 +148,10 @@ void NavigationObstacle2D::_notification(int p_what) {
 NavigationObstacle2D::NavigationObstacle2D() {
 	obstacle = NavigationServer2D::get_singleton()->obstacle_create();
 
-	set_radius(radius);
-	set_vertices(vertices);
-	set_avoidance_layers(avoidance_layers);
-	set_avoidance_enabled(avoidance_enabled);
+	NavigationServer2D::get_singleton()->obstacle_set_radius(obstacle, radius);
+	NavigationServer2D::get_singleton()->obstacle_set_vertices(obstacle, vertices);
+	NavigationServer2D::get_singleton()->obstacle_set_avoidance_layers(obstacle, avoidance_layers);
+	NavigationServer2D::get_singleton()->obstacle_set_avoidance_enabled(obstacle, avoidance_enabled);
 }
 
 NavigationObstacle2D::~NavigationObstacle2D() {

+ 5 - 7
scene/3d/navigation_obstacle_3d.cpp

@@ -167,13 +167,11 @@ NavigationObstacle3D::NavigationObstacle3D() {
 	obstacle = NavigationServer3D::get_singleton()->obstacle_create();
 
 	NavigationServer3D::get_singleton()->obstacle_set_height(obstacle, height);
-
-	set_radius(radius);
-	set_height(height);
-	set_vertices(vertices);
-	set_avoidance_layers(avoidance_layers);
-	set_avoidance_enabled(avoidance_enabled);
-	set_use_3d_avoidance(use_3d_avoidance);
+	NavigationServer3D::get_singleton()->obstacle_set_radius(obstacle, radius);
+	NavigationServer3D::get_singleton()->obstacle_set_vertices(obstacle, vertices);
+	NavigationServer3D::get_singleton()->obstacle_set_avoidance_layers(obstacle, avoidance_layers);
+	NavigationServer3D::get_singleton()->obstacle_set_use_3d_avoidance(obstacle, use_3d_avoidance);
+	NavigationServer3D::get_singleton()->obstacle_set_avoidance_enabled(obstacle, avoidance_enabled);
 
 #ifdef DEBUG_ENABLED
 	NavigationServer3D::get_singleton()->connect("avoidance_debug_changed", callable_mp(this, &NavigationObstacle3D::_update_fake_agent_radius_debug));