浏览代码

Fix GridMap free navigation RID error spam

Fixes GridMap free navigation RID error spam.
smix8 2 年之前
父节点
当前提交
cc02007e30
共有 1 个文件被更改,包括 6 次插入2 次删除
  1. 6 2
      modules/gridmap/grid_map.cpp

+ 6 - 2
modules/gridmap/grid_map.cpp

@@ -557,10 +557,14 @@ bool GridMap::_octant_update(const OctantKey &p_key) {
 	}
 
 	//erase navigation
-	for (const KeyValue<IndexKey, Octant::NavigationCell> &E : g.navigation_cell_ids) {
-		NavigationServer3D::get_singleton()->free(E.value.region);
+	for (KeyValue<IndexKey, Octant::NavigationCell> &E : g.navigation_cell_ids) {
+		if (E.value.region.is_valid()) {
+			NavigationServer3D::get_singleton()->free(E.value.region);
+			E.value.region = RID();
+		}
 		if (E.value.navigation_mesh_debug_instance.is_valid()) {
 			RS::get_singleton()->free(E.value.navigation_mesh_debug_instance);
+			E.value.navigation_mesh_debug_instance = RID();
 		}
 	}
 	g.navigation_cell_ids.clear();