Jelajahi Sumber

Fix NavigationPolygon not updating consistently on rebakes

Fixes that NavigationPolygon did not update in all cases because the internal NavigationMesh was not always unref and freed which blocked creating a new mesh later if nothing else freed it.
smix8 1 tahun lalu
induk
melakukan
9dd05964d5
1 mengubah file dengan 4 tambahan dan 0 penghapusan
  1. 4 0
      scene/resources/2d/navigation_polygon.cpp

+ 4 - 0
scene/resources/2d/navigation_polygon.cpp

@@ -193,6 +193,10 @@ void NavigationPolygon::set_data(const Vector<Vector2> &p_vertices, const Vector
 	for (int i = 0; i < p_polygons.size(); i++) {
 		polygons.write[i].indices = p_polygons[i];
 	}
+	{
+		MutexLock lock(navigation_mesh_generation);
+		navigation_mesh.unref();
+	}
 }
 
 void NavigationPolygon::get_data(Vector<Vector2> &r_vertices, Vector<Vector<int>> &r_polygons) {