diff --git a/scene/resources/2d/tile_set.cpp b/scene/resources/2d/tile_set.cpp index 6c3356a20590..d124577d25b6 100644 --- a/scene/resources/2d/tile_set.cpp +++ b/scene/resources/2d/tile_set.cpp @@ -6489,18 +6489,16 @@ Ref TileData::get_navigation_polygon(int p_layer_id, bool p_f PackedVector2Array new_points = get_transformed_vertices(layer_tile_data.navigation_polygon->get_vertices(), p_flip_h, p_flip_v, p_transpose); transformed_polygon->set_vertices(new_points); + int num_polygons = layer_tile_data.navigation_polygon->get_polygon_count(); + for (int i = 0; i < num_polygons; ++i) { + transformed_polygon->add_polygon(layer_tile_data.navigation_polygon->get_polygon(i)); + } + for (int i = 0; i < layer_tile_data.navigation_polygon->get_outline_count(); i++) { PackedVector2Array new_outline = get_transformed_vertices(layer_tile_data.navigation_polygon->get_outline(i), p_flip_h, p_flip_v, p_transpose); transformed_polygon->add_outline(new_outline); } - PackedInt32Array indices; - indices.resize(new_points.size()); - int *w = indices.ptrw(); - for (int i = 0; i < new_points.size(); i++) { - w[i] = i; - } - transformed_polygon->add_polygon(indices); layer_tile_data.transformed_navigation_polygon[key] = transformed_polygon; return transformed_polygon; } else {