浏览代码

Fix "Convert to MeshLibrary" not respecting collision transforms

(cherry picked from commit 025d7b933266901f49c05922e85b70dd9b3b8b19)
Ricardo Buring 3 年之前
父节点
当前提交
684b7fdf47
共有 1 个文件被更改,包括 6 次插入4 次删除
  1. 6 4
      editor/plugins/mesh_library_editor_plugin.cpp

+ 6 - 4
editor/plugins/mesh_library_editor_plugin.cpp

@@ -136,9 +136,11 @@ void MeshLibraryEditor::_import_scene(Node *p_scene, Ref<MeshLibrary> 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<Shape> collision = sb->shape_owner_get_shape(E->get(), k);
@@ -147,7 +149,7 @@ void MeshLibraryEditor::_import_scene(Node *p_scene, Ref<MeshLibrary> 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);
 				}
 			}