diff --git a/editor/plugins/mesh_library_editor_plugin.cpp b/editor/plugins/mesh_library_editor_plugin.cpp index 5d8f0074622..7bcd89cae84 100644 --- a/editor/plugins/mesh_library_editor_plugin.cpp +++ b/editor/plugins/mesh_library_editor_plugin.cpp @@ -136,9 +136,11 @@ void MeshLibraryEditor::_import_scene(Node *p_scene, Ref p_library, continue; } - //Transform shape_transform = sb->shape_owner_get_transform(E->get()); - - //shape_transform.set_origin(shape_transform.get_origin() - phys_offset); + Transform shape_transform; + if (p_apply_xforms) { + shape_transform = mi->get_transform(); + } + shape_transform *= sb->get_transform() * sb->shape_owner_get_transform(E->get()); for (int k = 0; k < sb->shape_owner_get_shape_count(E->get()); k++) { Ref collision = sb->shape_owner_get_shape(E->get(), k); @@ -147,7 +149,7 @@ void MeshLibraryEditor::_import_scene(Node *p_scene, Ref p_library, } MeshLibrary::ShapeData shape_data; shape_data.shape = collision; - shape_data.local_transform = sb->get_transform() * sb->shape_owner_get_transform(E->get()); + shape_data.local_transform = shape_transform; collisions.push_back(shape_data); } }