Explorar el Código

Merge pull request #83365 from Malcolmnixon/fix-disabled-nav-region

Fix enabling NavigationRegion3D saved disabled
Rémi Verschelde hace 1 año
padre
commit
cbfa941061
Se han modificado 2 ficheros con 19 adiciones y 19 borrados
  1. 13 13
      scene/2d/navigation_region_2d.cpp
  2. 6 6
      scene/3d/navigation_region_3d.cpp

+ 13 - 13
scene/2d/navigation_region_2d.cpp

@@ -497,20 +497,18 @@ void NavigationRegion2D::_region_enter_navigation_map() {
 		return;
 	}
 
-	if (enabled) {
-		if (map_override.is_valid()) {
-			NavigationServer2D::get_singleton()->region_set_map(region, map_override);
-			for (uint32_t i = 0; i < constrain_avoidance_obstacles.size(); i++) {
-				if (constrain_avoidance_obstacles[i].is_valid()) {
-					NavigationServer2D::get_singleton()->obstacle_set_map(constrain_avoidance_obstacles[i], map_override);
-				}
+	if (map_override.is_valid()) {
+		NavigationServer2D::get_singleton()->region_set_map(region, map_override);
+		for (uint32_t i = 0; i < constrain_avoidance_obstacles.size(); i++) {
+			if (constrain_avoidance_obstacles[i].is_valid()) {
+				NavigationServer2D::get_singleton()->obstacle_set_map(constrain_avoidance_obstacles[i], map_override);
 			}
-		} else {
-			NavigationServer2D::get_singleton()->region_set_map(region, get_world_2d()->get_navigation_map());
-			for (uint32_t i = 0; i < constrain_avoidance_obstacles.size(); i++) {
-				if (constrain_avoidance_obstacles[i].is_valid()) {
-					NavigationServer2D::get_singleton()->obstacle_set_map(constrain_avoidance_obstacles[i], get_world_2d()->get_navigation_map());
-				}
+		}
+	} else {
+		NavigationServer2D::get_singleton()->region_set_map(region, get_world_2d()->get_navigation_map());
+		for (uint32_t i = 0; i < constrain_avoidance_obstacles.size(); i++) {
+			if (constrain_avoidance_obstacles[i].is_valid()) {
+				NavigationServer2D::get_singleton()->obstacle_set_map(constrain_avoidance_obstacles[i], get_world_2d()->get_navigation_map());
 			}
 		}
 	}
@@ -523,6 +521,8 @@ void NavigationRegion2D::_region_enter_navigation_map() {
 		}
 	}
 
+	NavigationServer2D::get_singleton()->region_set_enabled(region, enabled);
+
 	queue_redraw();
 }
 

+ 6 - 6
scene/3d/navigation_region_3d.cpp

@@ -356,17 +356,17 @@ void NavigationRegion3D::_region_enter_navigation_map() {
 		return;
 	}
 
-	if (enabled) {
-		if (map_override.is_valid()) {
-			NavigationServer3D::get_singleton()->region_set_map(region, map_override);
-		} else {
-			NavigationServer3D::get_singleton()->region_set_map(region, get_world_3d()->get_navigation_map());
-		}
+	if (map_override.is_valid()) {
+		NavigationServer3D::get_singleton()->region_set_map(region, map_override);
+	} else {
+		NavigationServer3D::get_singleton()->region_set_map(region, get_world_3d()->get_navigation_map());
 	}
 
 	current_global_transform = get_global_transform();
 	NavigationServer3D::get_singleton()->region_set_transform(region, current_global_transform);
 
+	NavigationServer3D::get_singleton()->region_set_enabled(region, enabled);
+
 #ifdef DEBUG_ENABLED
 	if (NavigationServer3D::get_singleton()->get_debug_navigation_enabled()) {
 		_update_debug_mesh();